diff --git a/client/src/main/java/rt4/ColorImageCache.java b/client/src/main/java/rt4/ColorImageCache.java index b3241f8..b0a80ae 100644 --- a/client/src/main/java/rt4/ColorImageCache.java +++ b/client/src/main/java/rt4/ColorImageCache.java @@ -54,7 +54,7 @@ public final class ColorImageCache { } @OriginalMember(owner = "client!pf", name = "b", descriptor = "(II)[I") - public final int[] method3445(@OriginalArg(1) int row) { + public final int[] get(@OriginalArg(1) int row) { if (this.height == this.capacity) { this.invalid = this.entries[row] == null; this.entries[row] = VALID; diff --git a/client/src/main/java/rt4/Js5GlTextureProvider.java b/client/src/main/java/rt4/Js5GlTextureProvider.java index 3306a04..8e29aa8 100644 --- a/client/src/main/java/rt4/Js5GlTextureProvider.java +++ b/client/src/main/java/rt4/Js5GlTextureProvider.java @@ -144,7 +144,7 @@ public final class Js5GlTextureProvider implements TextureProvider { @OriginalMember(owner = "client!nk", name = "e", descriptor = "(II)[I") @Override - public final int[] method3235(@OriginalArg(1) int arg0) { + public final int[] getPixels(@OriginalArg(1) int arg0) { @Pc(16) GlTexture local16 = this.method3242(arg0); return local16 == null ? null : local16.method4297(this.lowDetail || this.aBooleanArray89[arg0], this, this.aClass153_72); } diff --git a/client/src/main/java/rt4/Light.java b/client/src/main/java/rt4/Light.java index a0912e3..3bd83aa 100644 --- a/client/src/main/java/rt4/Light.java +++ b/client/src/main/java/rt4/Light.java @@ -106,15 +106,15 @@ public final class Light { @OriginalMember(owner = "client!qk", name = "a", descriptor = "(ZIIIIFII)[I") public static int[] method3679(@OriginalArg(5) float arg0) { @Pc(11) int[] local11 = new int[2048]; - @Pc(15) TextureOp4 local15 = new TextureOp4(); + @Pc(15) TextureOp34 local15 = new TextureOp34(); local15.anInt646 = 8; local15.anInt642 = 4; local15.anInt650 = 35; local15.anInt641 = 8; local15.anInt648 = (int) (arg0 * 4096.0F); local15.aBoolean44 = true; - local15.method4630(); - Static10.method348(1, 2048); + local15.postDecode(); + Texture.setSize(1, 2048); local15.method584(0, local11); return local11; } diff --git a/client/src/main/java/rt4/MonochromeImageCache.java b/client/src/main/java/rt4/MonochromeImageCache.java index b37eebf..cba157d 100644 --- a/client/src/main/java/rt4/MonochromeImageCache.java +++ b/client/src/main/java/rt4/MonochromeImageCache.java @@ -26,7 +26,7 @@ public final class MonochromeImageCache { private LinkedList aClass69_96 = new LinkedList(); @OriginalMember(owner = "client!nd", name = "w", descriptor = "Z") - public boolean aBoolean195 = false; + public boolean invalid = false; @OriginalMember(owner = "client!nd", name = "l", descriptor = "I") private final int anInt4067; @@ -95,19 +95,19 @@ public final class MonochromeImageCache { } @OriginalMember(owner = "client!nd", name = "a", descriptor = "(BI)[[I") - public final int[][] method3173(@OriginalArg(1) int arg0) { + public final int[][] get(@OriginalArg(1) int arg0) { if (this.anInt4064 == this.anInt4067) { - this.aBoolean195 = this.aClass3_Sub23Array1[arg0] == null; + this.invalid = this.aClass3_Sub23Array1[arg0] == null; this.aClass3_Sub23Array1[arg0] = aClass3_Sub23_1; return this.anIntArrayArrayArray13[arg0]; } else if (this.anInt4064 == 1) { - this.aBoolean195 = this.anInt4062 != arg0; + this.invalid = this.anInt4062 != arg0; this.anInt4062 = arg0; return this.anIntArrayArrayArray13[0]; } else { @Pc(44) MonochromeImageCache_Class3_Sub23 local44 = this.aClass3_Sub23Array1[arg0]; if (local44 == null) { - this.aBoolean195 = true; + this.invalid = true; if (this.anInt4066 < this.anInt4064) { local44 = new MonochromeImageCache_Class3_Sub23(arg0, this.anInt4066); this.anInt4066++; @@ -119,7 +119,7 @@ public final class MonochromeImageCache { } this.aClass3_Sub23Array1[arg0] = local44; } else { - this.aBoolean195 = false; + this.invalid = false; } this.aClass69_96.addHead(local44); return this.anIntArrayArrayArray13[local44.anInt3468]; diff --git a/client/src/main/java/rt4/SpriteLoader.java b/client/src/main/java/rt4/SpriteLoader.java index 44bc8f4..59dd63a 100644 --- a/client/src/main/java/rt4/SpriteLoader.java +++ b/client/src/main/java/rt4/SpriteLoader.java @@ -341,7 +341,7 @@ public class SpriteLoader { } @OriginalMember(owner = "client!na", name = "a", descriptor = "(Lclient!ve;IZ)Lclient!mm;") - public static SoftwareSprite method3117(@OriginalArg(0) Js5 arg0, @OriginalArg(1) int arg1) { + public static SoftwareSprite loadSoftwareSpriteAutoDetect(@OriginalArg(0) Js5 arg0, @OriginalArg(1) int arg1) { return decode(arg0, arg1) ? method3537() : null; } } diff --git a/client/src/main/java/rt4/Static10.java b/client/src/main/java/rt4/Static10.java index ea1b4cb..7293406 100644 --- a/client/src/main/java/rt4/Static10.java +++ b/client/src/main/java/rt4/Static10.java @@ -6,41 +6,6 @@ import org.openrs2.deob.annotation.Pc; public final class Static10 { - @OriginalMember(owner = "client!nj", name = "k", descriptor = "I") - public static int anInt4165; - @OriginalMember(owner = "client!pe", name = "r", descriptor = "I") - public static int anInt4457; - @OriginalMember(owner = "client!fb", name = "h", descriptor = "[I") - public static int[] anIntArray153; - @OriginalMember(owner = "client!lb", name = "z", descriptor = "I") - public static int anInt3473; - - @OriginalMember(owner = "client!an", name = "c", descriptor = "(III)V") - public static void method348(@OriginalArg(1) int arg0, @OriginalArg(2) int arg1) { - if (anInt4457 != arg1) { - Static173.anIntArray367 = new int[arg1]; - for (@Pc(10) int local10 = 0; local10 < arg1; local10++) { - Static173.anIntArray367[local10] = (local10 << 12) / arg1; - } - Static165.anInt4042 = arg1 == 64 ? 2048 : 4096; - Static34.anInt1060 = arg1 - 1; - anInt4457 = arg1; - } - if (anInt4165 == arg0) { - return; - } - if (anInt4457 == arg0) { - anIntArray153 = Static173.anIntArray367; - } else { - anIntArray153 = new int[arg0]; - for (@Pc(61) int local61 = 0; local61 < arg0; local61++) { - anIntArray153[local61] = (local61 << 12) / arg0; - } - } - anInt4165 = arg0; - anInt3473 = arg0 - 1; - } - @OriginalMember(owner = "client!an", name = "a", descriptor = "(IIIIIII)V") public static void method352(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(5) int arg4, @OriginalArg(6) int arg5) { @Pc(11) int local11 = Static231.method1690(TextureOp29.anInt2869, arg5, TextureOp29.anInt5773); diff --git a/client/src/main/java/rt4/Static165.java b/client/src/main/java/rt4/Static165.java index 323f66a..8124b80 100644 --- a/client/src/main/java/rt4/Static165.java +++ b/client/src/main/java/rt4/Static165.java @@ -9,9 +9,6 @@ public final class Static165 { @OriginalMember(owner = "client!nb", name = "i", descriptor = "Lclient!qf;") public static Sprite aClass3_Sub2_Sub1_8; - @OriginalMember(owner = "client!nb", name = "o", descriptor = "I") - public static int anInt4042; - @OriginalMember(owner = "client!nb", name = "n", descriptor = "Lclient!na;") public static final JagString DETAILS = JagString.parse("details"); diff --git a/client/src/main/java/rt4/Static173.java b/client/src/main/java/rt4/Static173.java index 7bb88bc..d8a00ce 100644 --- a/client/src/main/java/rt4/Static173.java +++ b/client/src/main/java/rt4/Static173.java @@ -6,10 +6,7 @@ import org.openrs2.deob.annotation.Pc; public final class Static173 { - @OriginalMember(owner = "client!nk", name = "d", descriptor = "[I") - public static int[] anIntArray367; - - @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 method3243(@OriginalArg(1) long[] arg0, @OriginalArg(2) int[] arg1) { method436(arg0, 0, arg0.length - 1, arg1); } diff --git a/client/src/main/java/rt4/Static176.java b/client/src/main/java/rt4/Static176.java index 57d1a7a..1c799d4 100644 --- a/client/src/main/java/rt4/Static176.java +++ b/client/src/main/java/rt4/Static176.java @@ -24,8 +24,6 @@ public final class Static176 { public static final JagString aClass100_945 = JagString.parse("0"); @OriginalMember(owner = "client!q", name = "a", descriptor = "Lclient!na;") public static final JagString aClass100_260 = JagString.parse(")1a2)1m"); - @OriginalMember(owner = "client!ob", name = "f", descriptor = "Lclient!ve;") - public static Js5 aClass153_76; @OriginalMember(owner = "client!ob", name = "a", descriptor = "[Z") public static final boolean[] customCameraActive = new boolean[5]; diff --git a/client/src/main/java/rt4/Static33.java b/client/src/main/java/rt4/Static33.java index 4ebcd24..847232a 100644 --- a/client/src/main/java/rt4/Static33.java +++ b/client/src/main/java/rt4/Static33.java @@ -48,14 +48,14 @@ public final class Static33 { @OriginalMember(owner = "client!cj", name = "a", descriptor = "(ZIIIIIIFB)[[I") public static int[][] method874(@OriginalArg(7) float arg0) { @Pc(15) int[][] local15 = new int[256][64]; - @Pc(19) TextureOp4 local19 = new TextureOp4(); + @Pc(19) TextureOp34 local19 = new TextureOp34(); local19.anInt648 = (int) (arg0 * 4096.0F); local19.anInt642 = 3; local19.anInt641 = 4; local19.aBoolean44 = false; local19.anInt646 = 8; - local19.method4630(); - Static10.method348(256, 64); + local19.postDecode(); + Texture.setSize(256, 64); for (@Pc(46) int local46 = 0; local46 < 256; local46++) { local19.method584(local46, local15[local46]); } diff --git a/client/src/main/java/rt4/Static34.java b/client/src/main/java/rt4/Static34.java index 62eedf4..f814087 100644 --- a/client/src/main/java/rt4/Static34.java +++ b/client/src/main/java/rt4/Static34.java @@ -4,9 +4,6 @@ import org.openrs2.deob.annotation.OriginalMember; public final class Static34 { - @OriginalMember(owner = "client!ck", name = "X", descriptor = "I") - public static int anInt1060; - @OriginalMember(owner = "client!ck", name = "d", descriptor = "[I") public static final int[] anIntArray80 = new int[] { 1, 0, -1, 0 }; diff --git a/client/src/main/java/rt4/Static9.java b/client/src/main/java/rt4/Static9.java index 10003e9..4bda602 100644 --- a/client/src/main/java/rt4/Static9.java +++ b/client/src/main/java/rt4/Static9.java @@ -11,12 +11,8 @@ public final class Static9 { @OriginalMember(owner = "client!al", name = "r", descriptor = "Lclient!na;") public static final JagString aClass100_35 = JagString.parse("showVideoAd"); - @OriginalMember(owner = "client!kc", name = "p", descriptor = "[I") - public static int[] anIntArray299; - @OriginalMember(owner = "client!je", name = "eb", descriptor = "[I") - public static int[] anIntArray282; - @OriginalMember(owner = "client!al", name = "a", descriptor = "(Z)V") + @OriginalMember(owner = "client!al", name = "a", descriptor = "(Z)V") public static void method182() { Static241.aClass13Array13 = null; Static87.method86(InterfaceList.topLevelInterface, 0, GameShell.canvasWidth, 0, -1, GameShell.canvasHeight, 0, 0); @@ -31,20 +27,6 @@ public final class Static9 { return new TextureOp29SubOp1(arg0.g2b(), arg0.g2b(), arg0.g2b(), arg0.g2b(), arg0.g3(), arg0.g1()); } - @OriginalMember(owner = "client!al", name = "b", descriptor = "(B)V") - public static void method185() { - if (anIntArray282 != null && anIntArray299 != null) { - return; - } - anIntArray282 = new int[256]; - anIntArray299 = new int[256]; - for (@Pc(26) int local26 = 0; local26 < 256; local26++) { - @Pc(36) double local36 = (double) local26 / 255.0D * 6.283185307179586D; - anIntArray282[local26] = (int) (Math.sin(local36) * 4096.0D); - anIntArray299[local26] = (int) (Math.cos(local36) * 4096.0D); - } - } - @OriginalMember(owner = "client!al", name = "a", descriptor = "(III)Z") public static boolean method187(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2) { @Pc(7) int local7 = SceneGraph.anIntArrayArrayArray12[arg0][arg1][arg2]; diff --git a/client/src/main/java/rt4/Texture.java b/client/src/main/java/rt4/Texture.java index 388eaf1..b07d585 100644 --- a/client/src/main/java/rt4/Texture.java +++ b/client/src/main/java/rt4/Texture.java @@ -11,12 +11,28 @@ public final class Texture { @OriginalMember(owner = "client!i", name = "ac", descriptor = "[I") public static final int[] brightnessMap = new int[256]; @OriginalMember(owner = "client!rh", name = "g", descriptor = "I") - public static final int anInt4868 = -1; + public static final int spriteGroupId = -1; @OriginalMember(owner = "client!jh", name = "f", descriptor = "D") public static double brightness = -1.0D; @OriginalMember(owner = "client!cm", name = "a", descriptor = "Lclient!m;") - public static TextureProvider anInterface1_1; - @OriginalMember(owner = "client!lc", name = "k", descriptor = "[I") + public static TextureProvider provider; + @OriginalMember(owner = "client!pe", name = "r", descriptor = "I") + public static int width; + @OriginalMember(owner = "client!ob", name = "f", descriptor = "Lclient!ve;") + public static Js5 spritesArchive; + @OriginalMember(owner = "client!nj", name = "k", descriptor = "I") + public static int height; + @OriginalMember(owner = "client!nk", name = "d", descriptor = "[I") + public static int[] widthFractions; + @OriginalMember(owner = "client!lb", name = "z", descriptor = "I") + public static int heightMask; + @OriginalMember(owner = "client!ck", name = "X", descriptor = "I") + public static int widthMask; + @OriginalMember(owner = "client!nb", name = "o", descriptor = "I") + public static int anInt4042; + @OriginalMember(owner = "client!fb", name = "h", descriptor = "[I") + public static int[] heightFractions; + @OriginalMember(owner = "client!lc", name = "k", descriptor = "[I") private final int[] anIntArray328; @OriginalMember(owner = "client!lc", name = "b", descriptor = "[I") @@ -98,110 +114,136 @@ public final class Texture { public static TextureOp method3680(@OriginalArg(1) Buffer arg0) { arg0.g1(); @Pc(13) int local13 = arg0.g1(); - @Pc(17) TextureOp local17 = method3860(local13); + @Pc(17) TextureOp local17 = create(local13); local17.anInt5840 = arg0.g1(); @Pc(26) int local26 = arg0.g1(); for (@Pc(34) int local34 = 0; local34 < local26; local34++) { @Pc(41) int local41 = arg0.g1(); - local17.method4629(local41, arg0); + local17.decode(local41, arg0); } - local17.method4630(); + local17.postDecode(); return local17; } @OriginalMember(owner = "client!sc", name = "a", descriptor = "(IZ)Lclient!j;") - public static TextureOp method3860(@OriginalArg(0) int arg0) { - if (arg0 == 0) { - return new TextureOp20(); - } else if (arg0 == 1) { + public static TextureOp create(@OriginalArg(0) int type) { + if (type == 0) { + return new TextureOpMonochromeFill(); + } else if (type == 1) { return new TextureOpColorFill(); - } else if (arg0 == 2) { - return new TextureOp27(); - } else if (arg0 == 3) { - return new TextureOp25(); - } else if (arg0 == 4) { - return new TextureOp17(); - } else if (arg0 == 5) { - return new TextureOp21(); - } else if (arg0 == 6) { - return new TextureOp2(); - } else if (arg0 == 7) { - return new TextureOpCombine(); - } else if (arg0 == 8) { - return new TextureOpCurve(); - } else if (arg0 == 9) { - return new TextureOp7(); - } else if (arg0 == 10) { - return new TextureOpColorGradient(); - } else if (arg0 == 11) { - return new TextureOp18(); - } else if (arg0 == 12) { - return new TextureOp1(); - } else if (arg0 == 13) { - return new TextureOp26(); - } else if (arg0 == 14) { - return new TextureOp28(); - } else if (arg0 == 15) { - return new TextureOp14(); - } else if (arg0 == 16) { - return new TextureOp8(); - } else if (arg0 == 17) { - return new TextureOp13(); - } else if (arg0 == 18) { - return new TextureOpTiledSprite(); - } else if (arg0 == 19) { - return new TextureOp16(); - } else if (arg0 == 20) { - return new TextureOp11(); - } else if (arg0 == 21) { - return new TextureOp5(); - } else if (arg0 == 22) { - return new TextureOp31(); - } else if (arg0 == 23) { - return new TextureOp15(); - } else if (arg0 == 24) { - return new TextureOp10(); - } else if (arg0 == 25) { - return new TextureOp30(); - } else if (arg0 == 26) { - return new TextureOpBinary(); - } else if (arg0 == 27) { - return new TextureOp6(); - } else if (arg0 == 28) { - return new TextureOp22(); - } else if (arg0 == 29) { - return new TextureOp29(); - } else if (arg0 == 30) { - return new TextureOp9(); - } else if (arg0 == 31) { - return new TextureOp12(); - } else if (arg0 == 32) { - return new TextureOp24(); - } else if (arg0 == 33) { - return new TextureOp3(); - } else if (arg0 == 34) { + } else if (type == 2) { + return new TextureOpHorizontalGradient(); + } else if (type == 3) { + return new TextureOpVerticalGradient(); + } else if (type == 4) { return new TextureOp4(); - } else if (arg0 == 35) { - return new TextureOp23(); - } else if (arg0 == 36) { - return new TextureOp32(); - } else if (arg0 == 37) { + } else if (type == 5) { + return new TextureOp5(); + } else if (type == 6) { + return new TextureOpClamp(); + } else if (type == 7) { + return new TextureOpCombine(); + } else if (type == 8) { + return new TextureOpCurve(); + } else if (type == 9) { + return new TextureOpFlip(); + } else if (type == 10) { + return new TextureOpColorGradient(); + } else if (type == 11) { + return new TextureOp11(); + } else if (type == 12) { + return new TextureOp12(); + } else if (type == 13) { + return new TextureOpNoise(); + } else if (type == 14) { + return new TextureOp14(); + } else if (type == 15) { + return new TextureOp15(); + } else if (type == 16) { + return new TextureOp16(); + } else if (type == 17) { + return new TextureOp17(); + } else if (type == 18) { + return new TextureOpTiledSprite(); + } else if (type == 19) { return new TextureOp19(); - } else if (arg0 == 38) { + } else if (type == 20) { + return new TextureOpTile(); + } else if (type == 21) { + return new TextureOpInterpolate(); + } else if (type == 22) { + return new TextureOpInvert(); + } else if (type == 23) { + return new TextureOp23(); + } else if (type == 24) { + return new TextureOpMonochrome(); + } else if (type == 25) { + return new TextureOp25(); + } else if (type == 26) { + return new TextureOpBinary(); + } else if (type == 27) { + return new TextureOp27(); + } else if (type == 28) { + return new TextureOp28(); + } else if (type == 29) { + return new TextureOp29(); + } else if (type == 30) { + return new TextureOpRange(); + } else if (type == 31) { + return new TextureOp31(); + } else if (type == 32) { + return new TextureOp32(); + } else if (type == 33) { return new TextureOp33(); - } else if (arg0 == 39) { + } else if (type == 34) { + return new TextureOp34(); + } else if (type == 35) { + return new TextureOp35(); + } else if (type == 36) { + return new TextureOpTexture(); + } else if (type == 37) { + return new TextureOp37(); + } else if (type == 38) { + return new TextureOp38(); + } else if (type == 39) { return new TextureOpSprite(); } else { return null; } } + @OriginalMember(owner = "client!an", name = "c", descriptor = "(III)V") + public static void setSize(@OriginalArg(1) int height, @OriginalArg(2) int arg1) { + if (width != arg1) { + widthFractions = new int[arg1]; + for (@Pc(10) int x = 0; x < arg1; x++) { + widthFractions[x] = (x << 12) / arg1; + } + anInt4042 = arg1 == 64 ? 2048 : 4096; + widthMask = arg1 - 1; + width = arg1; + } + if (Texture.height == height) { + return; + } + if (width == height) { + heightFractions = widthFractions; + } else { + heightFractions = new int[height]; + for (@Pc(61) int y = 0; y < height; y++) { + heightFractions[y] = (y << 12) / height; + } + } + Texture.height = height; + heightMask = height - 1; + } + @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) { setBrightness(arg3); - anInterface1_1 = arg5; - Static176.aClass153_76 = arg4; - Static10.method348(arg0, arg2); + provider = arg5; + spritesArchive = arg4; + setSize(arg0, arg2); @Pc(20) int local20; for (local20 = 0; local20 < this.aClass3_Sub1Array22.length; local20++) { this.aClass3_Sub1Array22[local20].method4632(arg0, arg2); @@ -227,13 +269,13 @@ public final class Texture { @Pc(101) int[] local101; @Pc(103) int[] local103; @Pc(105) int[] local105; - if (this.aClass3_Sub1_1.aBoolean309) { - @Pc(99) int[] local99 = this.aClass3_Sub1_1.method4626(local78); + if (this.aClass3_Sub1_1.monochrome) { + @Pc(99) int[] local99 = this.aClass3_Sub1_1.getMonochromeOutput(local78); local101 = local99; local103 = local99; local105 = local99; } else { - @Pc(113) int[][] local113 = this.aClass3_Sub1_1.method4638(local78); + @Pc(113) int[][] local113 = this.aClass3_Sub1_1.getColorOutput(local78); local101 = local113[0]; local105 = local113[2]; local103 = local113[1]; @@ -270,7 +312,7 @@ public final class Texture { } } for (local78 = 0; local78 < this.aClass3_Sub1Array22.length; local78++) { - this.aClass3_Sub1Array22[local78].method4633(); + this.aClass3_Sub1Array22[local78].clearImageCache(); } return local56; } @@ -279,9 +321,9 @@ public final class Texture { public final byte[] method2728(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) boolean arg2, @OriginalArg(3) TextureProvider arg3, @OriginalArg(4) double arg4, @OriginalArg(6) Js5 arg5) { @Pc(8) byte[] local8 = new byte[arg1 * 4 * arg0]; setBrightness(arg4); - Static176.aClass153_76 = arg5; - anInterface1_1 = arg3; - Static10.method348(arg0, arg1); + spritesArchive = arg5; + provider = arg3; + setSize(arg0, arg1); @Pc(31) int local31; for (local31 = 0; local31 < this.aClass3_Sub1Array22.length; local31++) { this.aClass3_Sub1Array22[local31].method4632(arg0, arg1); @@ -296,21 +338,21 @@ public final class Texture { @Pc(81) int[] local81; @Pc(83) int[] local83; @Pc(77) int[] local77; - if (this.aClass3_Sub1_1.aBoolean309) { - local77 = this.aClass3_Sub1_1.method4626(local53); + if (this.aClass3_Sub1_1.monochrome) { + local77 = this.aClass3_Sub1_1.getMonochromeOutput(local53); local79 = local77; local81 = local77; local83 = local77; } else { - @Pc(91) int[][] local91 = this.aClass3_Sub1_1.method4638(local53); + @Pc(91) int[][] local91 = this.aClass3_Sub1_1.getColorOutput(local53); local79 = local91[0]; local81 = local91[1]; local83 = local91[2]; } - if (this.aClass3_Sub1_2.aBoolean309) { - local77 = this.aClass3_Sub1_2.method4626(local53); + if (this.aClass3_Sub1_2.monochrome) { + local77 = this.aClass3_Sub1_2.getMonochromeOutput(local53); } else { - local77 = this.aClass3_Sub1_2.method4638(local53)[0]; + local77 = this.aClass3_Sub1_2.getColorOutput(local53)[0]; } for (@Pc(127) int local127 = arg1 - 1; local127 >= 0; local127--) { @Pc(138) int local138 = local79[local127] >> 4; @@ -359,7 +401,7 @@ public final class Texture { } } for (local53 = 0; local53 < this.aClass3_Sub1Array22.length; local53++) { - this.aClass3_Sub1Array22[local53].method4633(); + this.aClass3_Sub1Array22[local53].clearImageCache(); } return local8; } @@ -367,9 +409,9 @@ public final class Texture { @OriginalMember(owner = "client!lc", name = "a", descriptor = "(ZLclient!m;Lclient!ve;)Z") public final boolean method2729(@OriginalArg(1) TextureProvider arg0, @OriginalArg(2) Js5 arg1) { @Pc(10) int local10; - if (anInt4868 > 0) { + if (spriteGroupId > 0) { for (local10 = 0; local10 < this.anIntArray327.length; local10++) { - if (!arg1.isFileReady(this.anIntArray327[local10], anInt4868)) { + if (!arg1.isFileReady(this.anIntArray327[local10], spriteGroupId)) { return false; } } diff --git a/client/src/main/java/rt4/TextureOp.java b/client/src/main/java/rt4/TextureOp.java index 212af42..cdea38e 100644 --- a/client/src/main/java/rt4/TextureOp.java +++ b/client/src/main/java/rt4/TextureOp.java @@ -8,34 +8,52 @@ import org.openrs2.deob.annotation.Pc; @OriginalClass("client!j") public abstract class TextureOp extends Node { + @OriginalMember(owner = "client!kc", name = "p", descriptor = "[I") + public static int[] COSINE; + @OriginalMember(owner = "client!je", name = "eb", descriptor = "[I") + public static int[] SINE; @OriginalMember(owner = "client!j", name = "t", descriptor = "Lclient!nd;") - protected MonochromeImageCache aClass103_41; + protected MonochromeImageCache colorImageCache; @OriginalMember(owner = "client!j", name = "G", descriptor = "I") public int anInt5840; @OriginalMember(owner = "client!j", name = "H", descriptor = "Lclient!pf;") - protected ColorImageCache aClass121_41; + protected ColorImageCache monochromeImageCache; @OriginalMember(owner = "client!j", name = "u", descriptor = "[Lclient!j;") public final TextureOp[] aClass3_Sub1Array42; @OriginalMember(owner = "client!j", name = "p", descriptor = "Z") - public boolean aBoolean309; + public boolean monochrome; @OriginalMember(owner = "client!j", name = "", descriptor = "(IZ)V") protected TextureOp(@OriginalArg(0) int arg0, @OriginalArg(1) boolean arg1) { this.aClass3_Sub1Array42 = new TextureOp[arg0]; - this.aBoolean309 = arg1; + this.monochrome = arg1; + } + + @OriginalMember(owner = "client!al", name = "b", descriptor = "(B)V") + public static void createTrigonometryTables() { + if (SINE != null && COSINE != null) { + return; + } + SINE = new int[256]; + COSINE = new int[256]; + for (@Pc(26) int i = 0; i < 256; i++) { + @Pc(36) double radians = (double) i / 255.0D * 6.283185307179586D; + SINE[i] = (int) (Math.sin(radians) * 4096.0D); + COSINE[i] = (int) (Math.cos(radians) * 4096.0D); + } } @OriginalMember(owner = "client!j", name = "a", descriptor = "(III)[I") - protected final int[] method4624(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) { - return this.aClass3_Sub1Array42[arg0].aBoolean309 ? this.aClass3_Sub1Array42[arg0].method4626(arg1) : this.aClass3_Sub1Array42[arg0].method4638(arg1)[0]; + protected final int[] getChildMonochromeOutput(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) { + return this.aClass3_Sub1Array42[arg0].monochrome ? this.aClass3_Sub1Array42[arg0].getMonochromeOutput(arg1) : this.aClass3_Sub1Array42[arg0].getColorOutput(arg1)[0]; } @OriginalMember(owner = "client!j", name = "a", descriptor = "(IB)[I") - public int[] method4626(@OriginalArg(0) int arg0) { + public int[] getMonochromeOutput(@OriginalArg(0) int arg0) { throw new IllegalStateException("This operation does not have a monochrome output"); } @@ -45,11 +63,11 @@ public abstract class TextureOp extends Node { } @OriginalMember(owner = "client!j", name = "a", descriptor = "(ILclient!wa;Z)V") - public void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + public void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { } @OriginalMember(owner = "client!j", name = "e", descriptor = "(I)V") - public void method4630() { + public void postDecode() { } @OriginalMember(owner = "client!j", name = "f", descriptor = "(I)I") @@ -60,36 +78,36 @@ public abstract class TextureOp extends Node { @OriginalMember(owner = "client!j", name = "b", descriptor = "(III)V") public final void method4632(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) { @Pc(15) int local15 = this.anInt5840 == 255 ? arg0 : this.anInt5840; - if (this.aBoolean309) { - this.aClass121_41 = new ColorImageCache(local15, arg0, arg1); + if (this.monochrome) { + this.monochromeImageCache = new ColorImageCache(local15, arg0, arg1); } else { - this.aClass103_41 = new MonochromeImageCache(local15, arg0, arg1); + this.colorImageCache = new MonochromeImageCache(local15, arg0, arg1); } } @OriginalMember(owner = "client!j", name = "e", descriptor = "(B)V") - public void method4633() { - if (this.aBoolean309) { - this.aClass121_41.clear(); - this.aClass121_41 = null; + public void clearImageCache() { + if (this.monochrome) { + this.monochromeImageCache.clear(); + this.monochromeImageCache = null; } else { - this.aClass103_41.method3169(); - this.aClass103_41 = null; + this.colorImageCache.method3169(); + this.colorImageCache = null; } } @OriginalMember(owner = "client!j", name = "a", descriptor = "(IIB)[[I") - protected final int[][] method4634(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) { - if (this.aClass3_Sub1Array42[arg1].aBoolean309) { - @Pc(32) int[] local32 = this.aClass3_Sub1Array42[arg1].method4626(arg0); + protected final int[][] getChildColorOutput(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) { + if (this.aClass3_Sub1Array42[arg1].monochrome) { + @Pc(32) int[] local32 = this.aClass3_Sub1Array42[arg1].getMonochromeOutput(arg0); return new int[][] { local32, local32, local32 }; } else { - return this.aClass3_Sub1Array42[arg1].method4638(arg0); + return this.aClass3_Sub1Array42[arg1].getColorOutput(arg0); } } @OriginalMember(owner = "client!j", name = "b", descriptor = "(II)[[I") - public int[][] method4638(@OriginalArg(1) int arg0) { + public int[][] getColorOutput(@OriginalArg(1) int arg0) { throw new IllegalStateException("This operation does not have a colour output"); } } diff --git a/client/src/main/java/rt4/TextureOp1.java b/client/src/main/java/rt4/TextureOp1.java deleted file mode 100644 index 376c2b5..0000000 --- a/client/src/main/java/rt4/TextureOp1.java +++ /dev/null @@ -1,76 +0,0 @@ -package rt4; - -import org.openrs2.deob.annotation.OriginalArg; -import org.openrs2.deob.annotation.OriginalClass; -import org.openrs2.deob.annotation.OriginalMember; -import org.openrs2.deob.annotation.Pc; - -@OriginalClass("client!ag") -public final class TextureOp1 extends TextureOp { - - @OriginalMember(owner = "client!ag", name = "S", descriptor = "I") - private int anInt100 = 0; - - @OriginalMember(owner = "client!ag", name = "X", descriptor = "I") - private int anInt105 = 0; - - @OriginalMember(owner = "client!ag", name = "W", descriptor = "I") - private int anInt104 = 1; - - @OriginalMember(owner = "client!ag", name = "", descriptor = "()V") - public TextureOp1() { - super(0, true); - } - - @OriginalMember(owner = "client!ag", name = "a", descriptor = "(IB)[I") - @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(11) int[] local11 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(20) int local20 = Static10.anIntArray153[arg0]; - @Pc(26) int local26 = local20 - 2048 >> 1; - for (@Pc(28) int local28 = 0; local28 < Static10.anInt4457; local28++) { - @Pc(35) int local35 = Static173.anIntArray367[local28]; - @Pc(41) int local41 = local35 - 2048 >> 1; - @Pc(68) int local68; - if (this.anInt105 == 0) { - local68 = (local35 - local20) * this.anInt104; - } else { - @Pc(58) int local58 = local41 * local41 + local26 * local26 >> 12; - local68 = (int) (Math.sqrt((double) ((float) local58 / 4096.0F)) * 4096.0D); - local68 = (int) ((double) (local68 * this.anInt104) * 3.141592653589793D); - } - local68 -= local68 & 0xFFFFF000; - if (this.anInt100 == 0) { - local68 = Static9.anIntArray282[local68 >> 4 & 0xFF] + 4096 >> 1; - } else if (this.anInt100 == 2) { - local68 -= 2048; - if (local68 < 0) { - local68 = -local68; - } - local68 = 2048 - local68 << 1; - } - local11[local28] = local68; - } - } - return local11; - } - - @OriginalMember(owner = "client!ag", name = "e", descriptor = "(I)V") - @Override - public final void method4630() { - Static9.method185(); - } - - @OriginalMember(owner = "client!ag", name = "a", descriptor = "(ILclient!wa;Z)V") - @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { - if (arg0 == 0) { - this.anInt105 = arg1.g1(); - } else if (arg0 == 1) { - this.anInt100 = arg1.g1(); - } else if (arg0 == 3) { - this.anInt104 = arg1.g1(); - } - } -} diff --git a/client/src/main/java/rt4/TextureOp11.java b/client/src/main/java/rt4/TextureOp11.java index c764768..abef1be 100644 --- a/client/src/main/java/rt4/TextureOp11.java +++ b/client/src/main/java/rt4/TextureOp11.java @@ -5,90 +5,62 @@ import org.openrs2.deob.annotation.OriginalClass; import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; -@OriginalClass("client!gg") +@OriginalClass("client!mg") public final class TextureOp11 extends TextureOp { - @OriginalMember(owner = "client!gg", name = "V", descriptor = "I") - private int anInt2220 = 4; + @OriginalMember(owner = "client!mg", name = "R", descriptor = "I") + private int anInt3812 = 4096; - @OriginalMember(owner = "client!gg", name = "R", descriptor = "I") - private int anInt2216 = 4; + @OriginalMember(owner = "client!mg", name = "Z", descriptor = "I") + private int anInt3816 = 4096; - @OriginalMember(owner = "client!gg", name = "", descriptor = "()V") + @OriginalMember(owner = "client!mg", name = "X", descriptor = "I") + private int anInt3815 = 4096; + + @OriginalMember(owner = "client!mg", name = "", descriptor = "()V") public TextureOp11() { super(1, false); } - @OriginalMember(owner = "client!gg", name = "a", descriptor = "(ILclient!wa;Z)V") + @OriginalMember(owner = "client!mg", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { if (arg0 == 0) { - this.anInt2220 = arg1.g1(); + this.anInt3816 = arg1.g2(); } else if (arg0 == 1) { - this.anInt2216 = arg1.g1(); + this.anInt3812 = arg1.g2(); + } else if (arg0 == 2) { + this.anInt3815 = arg1.g2(); } } - @OriginalMember(owner = "client!gg", name = "a", descriptor = "(IB)[I") + @OriginalMember(owner = "client!mg", name = "b", descriptor = "(II)[[I") @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(19) int[] local19 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(28) int local28 = Static10.anInt4457 / this.anInt2220; - @Pc(33) int local33 = Static10.anInt4165 / this.anInt2216; - @Pc(44) int[] local44; - @Pc(50) int local50; - if (local33 <= 0) { - local44 = this.method4624(0, 0); - } else { - local50 = arg0 % local33; - local44 = this.method4624(0, Static10.anInt4165 * local50 / local33); - } - for (local50 = 0; local50 < Static10.anInt4457; local50++) { - if (local28 <= 0) { - local19[local50] = local44[0]; + public final int[][] getColorOutput(@OriginalArg(1) int arg0) { + @Pc(16) int[][] local16 = this.colorImageCache.get(arg0); + if (this.colorImageCache.invalid) { + @Pc(27) int[][] local27 = this.getChildColorOutput(arg0, 0); + @Pc(31) int[] local31 = local27[0]; + @Pc(35) int[] local35 = local27[1]; + @Pc(39) int[] local39 = local27[2]; + @Pc(43) int[] local43 = local16[1]; + @Pc(47) int[] local47 = local16[0]; + @Pc(51) int[] local51 = local16[2]; + for (@Pc(53) int local53 = 0; local53 < Texture.width; local53++) { + @Pc(64) int local64 = local31[local53]; + @Pc(68) int local68 = local35[local53]; + @Pc(72) int local72 = local39[local53]; + if (local64 == local72 && local68 == local72) { + local47[local53] = this.anInt3816 * local64 >> 12; + local43[local53] = local72 * this.anInt3812 >> 12; + local51[local53] = local68 * this.anInt3815 >> 12; } else { - @Pc(80) int local80 = local50 % local28; - local19[local50] = local44[Static10.anInt4457 * local80 / local28]; + local47[local53] = this.anInt3816; + local43[local53] = this.anInt3812; + local51[local53] = this.anInt3815; } } } - return local19; - } - - @OriginalMember(owner = "client!gg", name = "b", descriptor = "(II)[[I") - @Override - public final int[][] method4638(@OriginalArg(1) int arg0) { - @Pc(18) int[][] local18 = this.aClass103_41.method3173(arg0); - if (this.aClass103_41.aBoolean195) { - @Pc(28) int local28 = Static10.anInt4457 / this.anInt2220; - @Pc(33) int local33 = Static10.anInt4165 / this.anInt2216; - @Pc(49) int[][] local49; - if (local33 > 0) { - @Pc(39) int local39 = arg0 % local33; - local49 = this.method4634(local39 * Static10.anInt4165 / local33, 0); - } else { - local49 = this.method4634(0, 0); - } - @Pc(61) int[] local61 = local49[0]; - @Pc(65) int[] local65 = local49[2]; - @Pc(69) int[] local69 = local18[0]; - @Pc(73) int[] local73 = local49[1]; - @Pc(77) int[] local77 = local18[1]; - @Pc(81) int[] local81 = local18[2]; - for (@Pc(83) int local83 = 0; local83 < Static10.anInt4457; local83++) { - @Pc(94) int local94; - if (local28 <= 0) { - local94 = 0; - } else { - @Pc(100) int local100 = local83 % local28; - local94 = local100 * Static10.anInt4457 / local28; - } - local69[local83] = local61[local94]; - local77[local83] = local73[local94]; - local81[local83] = local65[local94]; - } - } - return local18; + return local16; } } diff --git a/client/src/main/java/rt4/TextureOp12.java b/client/src/main/java/rt4/TextureOp12.java index 09644c8..947e611 100644 --- a/client/src/main/java/rt4/TextureOp12.java +++ b/client/src/main/java/rt4/TextureOp12.java @@ -5,63 +5,72 @@ import org.openrs2.deob.annotation.OriginalClass; import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; -@OriginalClass("client!gm") +@OriginalClass("client!ag") public final class TextureOp12 extends TextureOp { - @OriginalMember(owner = "client!gm", name = "Z", descriptor = "I") - private int anInt2298 = 1365; + @OriginalMember(owner = "client!ag", name = "S", descriptor = "I") + private int anInt100 = 0; - @OriginalMember(owner = "client!gm", name = "ab", descriptor = "I") - private int anInt2299 = 0; + @OriginalMember(owner = "client!ag", name = "X", descriptor = "I") + private int anInt105 = 0; - @OriginalMember(owner = "client!gm", name = "V", descriptor = "I") - private int anInt2296 = 0; + @OriginalMember(owner = "client!ag", name = "W", descriptor = "I") + private int anInt104 = 1; - @OriginalMember(owner = "client!gm", name = "Y", descriptor = "I") - private int anInt2297 = 20; - - @OriginalMember(owner = "client!gm", name = "", descriptor = "()V") + @OriginalMember(owner = "client!ag", name = "", descriptor = "()V") public TextureOp12() { super(0, true); } - @OriginalMember(owner = "client!gm", name = "a", descriptor = "(ILclient!wa;Z)V") + @OriginalMember(owner = "client!ag", name = "a", descriptor = "(IB)[I") @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { - if (arg0 == 0) { - this.anInt2298 = arg1.g2(); - } else if (arg0 == 1) { - this.anInt2297 = arg1.g2(); - } else if (arg0 == 2) { - this.anInt2296 = arg1.g2(); - } else if (arg0 == 3) { - this.anInt2299 = arg1.g2(); - } - } - - @OriginalMember(owner = "client!gm", name = "a", descriptor = "(IB)[I") - @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(19) int[] local19 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - for (@Pc(26) int local26 = 0; local26 < Static10.anInt4457; local26++) { - @Pc(45) int local45 = this.anInt2299 + (Static10.anIntArray153[arg0] << 12) / this.anInt2298; - @Pc(57) int local57 = this.anInt2296 + (Static173.anIntArray367[local26] << 12) / this.anInt2298; - @Pc(61) int local61 = local57; - @Pc(65) int local65 = local45; - @Pc(67) int local67 = 0; - @Pc(73) int local73 = local57 * local57 >> 12; - @Pc(79) int local79 = local45 * local45 >> 12; - while (local73 + local79 < 16384 && this.anInt2297 > local67) { - local65 = (local61 * local65 >> 12) * 2 + local45; - local67++; - local61 = local73 + local57 - local79; - local79 = local65 * local65 >> 12; - local73 = local61 * local61 >> 12; + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(11) int[] local11 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(20) int local20 = Texture.heightFractions[arg0]; + @Pc(26) int local26 = local20 - 2048 >> 1; + for (@Pc(28) int local28 = 0; local28 < Texture.width; local28++) { + @Pc(35) int local35 = Texture.widthFractions[local28]; + @Pc(41) int local41 = local35 - 2048 >> 1; + @Pc(68) int local68; + if (this.anInt105 == 0) { + local68 = (local35 - local20) * this.anInt104; + } else { + @Pc(58) int local58 = local41 * local41 + local26 * local26 >> 12; + local68 = (int) (Math.sqrt((double) ((float) local58 / 4096.0F)) * 4096.0D); + local68 = (int) ((double) (local68 * this.anInt104) * 3.141592653589793D); } - local19[local26] = local67 >= this.anInt2297 - 1 ? 0 : (local67 << 12) / this.anInt2297; + local68 -= local68 & 0xFFFFF000; + if (this.anInt100 == 0) { + local68 = TextureOp.SINE[local68 >> 4 & 0xFF] + 4096 >> 1; + } else if (this.anInt100 == 2) { + local68 -= 2048; + if (local68 < 0) { + local68 = -local68; + } + local68 = 2048 - local68 << 1; + } + local11[local28] = local68; } } - return local19; + return local11; + } + + @OriginalMember(owner = "client!ag", name = "e", descriptor = "(I)V") + @Override + public final void postDecode() { + TextureOp.createTrigonometryTables(); + } + + @OriginalMember(owner = "client!ag", name = "a", descriptor = "(ILclient!wa;Z)V") + @Override + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + if (arg0 == 0) { + this.anInt105 = arg1.g1(); + } else if (arg0 == 1) { + this.anInt100 = arg1.g1(); + } else if (arg0 == 3) { + this.anInt104 = arg1.g1(); + } } } diff --git a/client/src/main/java/rt4/TextureOp13.java b/client/src/main/java/rt4/TextureOp13.java deleted file mode 100644 index 98633f3..0000000 --- a/client/src/main/java/rt4/TextureOp13.java +++ /dev/null @@ -1,169 +0,0 @@ -package rt4; - -import org.openrs2.deob.annotation.OriginalArg; -import org.openrs2.deob.annotation.OriginalClass; -import org.openrs2.deob.annotation.OriginalMember; -import org.openrs2.deob.annotation.Pc; - -@OriginalClass("client!hk") -public final class TextureOp13 extends TextureOp { - - @OriginalMember(owner = "client!hk", name = "Q", descriptor = "I") - private int anInt2543; - - @OriginalMember(owner = "client!hk", name = "Z", descriptor = "I") - private int anInt2551; - - @OriginalMember(owner = "client!hk", name = "cb", descriptor = "I") - private int anInt2553; - - @OriginalMember(owner = "client!hk", name = "gb", descriptor = "I") - private int anInt2554; - - @OriginalMember(owner = "client!hk", name = "ib", descriptor = "I") - private int anInt2556; - - @OriginalMember(owner = "client!hk", name = "jb", descriptor = "I") - private int anInt2557; - - @OriginalMember(owner = "client!hk", name = "T", descriptor = "I") - private int anInt2546 = 0; - - @OriginalMember(owner = "client!hk", name = "U", descriptor = "I") - private int anInt2547 = 0; - - @OriginalMember(owner = "client!hk", name = "X", descriptor = "I") - private int anInt2549 = 0; - - @OriginalMember(owner = "client!hk", name = "", descriptor = "()V") - public TextureOp13() { - super(1, false); - } - - @OriginalMember(owner = "client!hk", name = "a", descriptor = "(ILclient!wa;Z)V") - @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { - if (arg0 == 0) { - this.anInt2546 = arg1.g2b(); - } else if (arg0 == 1) { - this.anInt2549 = (arg1.g1b() << 12) / 100; - } else if (arg0 == 2) { - this.anInt2547 = (arg1.g1b() << 12) / 100; - } - } - - @OriginalMember(owner = "client!hk", name = "a", descriptor = "(IIII)V") - private void method1991(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(3) int arg2) { - @Pc(35) int local35 = arg0 <= 2048 ? arg0 * (arg1 + 4096) >> 12 : arg0 + arg1 - (arg0 * arg1 >> 12); - if (local35 <= 0) { - this.anInt2554 = this.anInt2543 = this.anInt2553 = arg0; - return; - } - @Pc(44) int local44 = arg2 * 6; - @Pc(51) int local51 = arg0 + arg0 - local35; - @Pc(55) int local55 = local44 >> 12; - @Pc(64) int local64 = (local35 - local51 << 12) / local35; - @Pc(70) int local70 = local44 - (local55 << 12); - @Pc(78) int local78 = local35 * local64 >> 12; - @Pc(84) int local84 = local78 * local70 >> 12; - @Pc(88) int local88 = local84 + local51; - @Pc(93) int local93 = local35 - local84; - if (local55 == 0) { - this.anInt2553 = local51; - this.anInt2554 = local35; - this.anInt2543 = local88; - } else if (local55 == 1) { - this.anInt2553 = local51; - this.anInt2543 = local35; - this.anInt2554 = local93; - } else if (local55 == 2) { - this.anInt2554 = local51; - this.anInt2543 = local35; - this.anInt2553 = local88; - } else if (local55 == 3) { - this.anInt2543 = local93; - this.anInt2553 = local35; - this.anInt2554 = local51; - } else if (local55 == 4) { - this.anInt2553 = local35; - this.anInt2554 = local88; - this.anInt2543 = local51; - } else if (local55 == 5) { - this.anInt2543 = local51; - this.anInt2554 = local35; - this.anInt2553 = local93; - } - } - - @OriginalMember(owner = "client!hk", name = "a", descriptor = "(BIII)V") - private void method1992(@OriginalArg(1) int arg0, @OriginalArg(2) int arg1, @OriginalArg(3) int arg2) { - @Pc(12) int local12 = arg0 > arg1 ? arg0 : arg1; - @Pc(31) int local31 = arg2 <= local12 ? local12 : arg2; - @Pc(38) int local38 = arg1 > arg0 ? arg0 : arg1; - @Pc(49) int local49 = arg2 >= local38 ? local38 : arg2; - @Pc(54) int local54 = local31 - local49; - if (local54 > 0) { - @Pc(65) int local65 = (local31 - arg1 << 12) / local54; - @Pc(74) int local74 = (local31 - arg0 << 12) / local54; - @Pc(83) int local83 = (local31 - arg2 << 12) / local54; - if (arg0 == local31) { - this.anInt2551 = local49 == arg1 ? local83 + 20480 : -local65 + 4096; - } else if (local31 == arg1) { - this.anInt2551 = local49 == arg2 ? local74 + 4096 : -local83 + 12288; - } else { - this.anInt2551 = local49 == arg0 ? local65 + 12288 : -local74 + 20480; - } - this.anInt2551 /= 6; - } else { - this.anInt2551 = 0; - } - this.anInt2556 = (local49 + local31) / 2; - if (this.anInt2556 > 0 && this.anInt2556 < 4096) { - this.anInt2557 = (local54 << 12) / (this.anInt2556 > 2048 ? 8192 - this.anInt2556 * 2 : this.anInt2556 * 2); - } else { - this.anInt2557 = 0; - } - } - - @OriginalMember(owner = "client!hk", name = "b", descriptor = "(II)[[I") - @Override - public final int[][] method4638(@OriginalArg(1) int arg0) { - @Pc(17) int[][] local17 = this.aClass103_41.method3173(arg0); - if (this.aClass103_41.aBoolean195) { - @Pc(28) int[][] local28 = this.method4634(arg0, 0); - @Pc(32) int[] local32 = local28[0]; - @Pc(36) int[] local36 = local28[1]; - @Pc(40) int[] local40 = local28[2]; - @Pc(44) int[] local44 = local17[1]; - @Pc(48) int[] local48 = local17[2]; - @Pc(52) int[] local52 = local17[0]; - for (@Pc(54) int local54 = 0; local54 < Static10.anInt4457; local54++) { - this.method1992(local32[local54], local36[local54], local40[local54]); - this.anInt2556 += this.anInt2547; - if (this.anInt2556 < 0) { - this.anInt2556 = 0; - } - this.anInt2557 += this.anInt2549; - if (this.anInt2556 > 4096) { - this.anInt2556 = 4096; - } - if (this.anInt2557 < 0) { - this.anInt2557 = 0; - } - if (this.anInt2557 > 4096) { - this.anInt2557 = 4096; - } - for (this.anInt2551 += this.anInt2546; this.anInt2551 < 0; this.anInt2551 += 4096) { - } - while (this.anInt2551 > 4096) { - this.anInt2551 -= 4096; - } - this.method1991(this.anInt2556, this.anInt2557, this.anInt2551); - local52[local54] = this.anInt2554; - local44[local54] = this.anInt2543; - local48[local54] = this.anInt2553; - } - } - return local17; - } -} diff --git a/client/src/main/java/rt4/TextureOp14.java b/client/src/main/java/rt4/TextureOp14.java index ad8a85d..8b25bb7 100644 --- a/client/src/main/java/rt4/TextureOp14.java +++ b/client/src/main/java/rt4/TextureOp14.java @@ -1,167 +1,67 @@ package rt4; -import java.util.Random; import org.openrs2.deob.annotation.OriginalArg; import org.openrs2.deob.annotation.OriginalClass; import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; -@OriginalClass("client!hm") +@OriginalClass("client!sa") public final class TextureOp14 extends TextureOp { - @OriginalMember(owner = "client!ui", name = "Q", descriptor = "I") - public static int anInt5526; - @OriginalMember(owner = "client!uf", name = "p", descriptor = "I") - public static int anInt5443; - @OriginalMember(owner = "client!cl", name = "X", descriptor = "I") - public static int anInt1091; - @OriginalMember(owner = "client!jg", name = "g", descriptor = "I") - public static int anInt3041; - @OriginalMember(owner = "client!hm", name = "S", descriptor = "I") - private int anInt2635 = 2; + @OriginalMember(owner = "client!sa", name = "T", descriptor = "I") + private int anInt4971 = 585; - @OriginalMember(owner = "client!hm", name = "U", descriptor = "I") - private int anInt2636 = 2048; - - @OriginalMember(owner = "client!hm", name = "Z", descriptor = "I") - private int anInt2639 = 0; - - @OriginalMember(owner = "client!hm", name = "W", descriptor = "I") - private int anInt2638 = 1; - - @OriginalMember(owner = "client!hm", name = "jb", descriptor = "I") - private int anInt2646 = 5; - - @OriginalMember(owner = "client!hm", name = "X", descriptor = "[B") - private byte[] aByteArray38 = new byte[512]; - - @OriginalMember(owner = "client!hm", name = "ib", descriptor = "I") - private int anInt2645 = 5; - - @OriginalMember(owner = "client!hm", name = "eb", descriptor = "[S") - private short[] aShortArray35 = new short[512]; - - @OriginalMember(owner = "client!hm", name = "", descriptor = "()V") + @OriginalMember(owner = "client!sa", name = "", descriptor = "()V") public TextureOp14() { super(0, true); } - @OriginalMember(owner = "client!hm", name = "f", descriptor = "(B)V") - private void method2052() { - @Pc(12) Random local12 = new Random((long) this.anInt2639); - this.aShortArray35 = new short[512]; - if (this.anInt2636 > 0) { - for (@Pc(26) int local26 = 0; local26 < 512; local26++) { - this.aShortArray35[local26] = (short) Static171.method3219(this.anInt2636, local12); - } - } - } - - @OriginalMember(owner = "client!hm", name = "e", descriptor = "(I)V") + @OriginalMember(owner = "client!sa", name = "a", descriptor = "(IB)[I") @Override - public final void method4630() { - this.aByteArray38 = Static89.method1837(this.anInt2639); - this.method2052(); - } - - @OriginalMember(owner = "client!hm", name = "a", descriptor = "(IB)[I") - @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(19) int[] local19 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(32) int local32 = this.anInt2646 * Static10.anIntArray153[arg0] + 2048; - @Pc(36) int local36 = local32 >> 12; - @Pc(40) int local40 = local36 + 1; - for (@Pc(42) int local42 = 0; local42 < Static10.anInt4457; local42++) { - anInt5526 = Integer.MAX_VALUE; - anInt5443 = Integer.MAX_VALUE; - anInt3041 = Integer.MAX_VALUE; - anInt1091 = Integer.MAX_VALUE; - @Pc(62) int local62 = this.anInt2645 * Static173.anIntArray367[local42] + 2048; - @Pc(66) int local66 = local62 >> 12; - @Pc(70) int local70 = local66 + 1; - @Pc(165) int local165; - for (@Pc(74) int local74 = local36 - 1; local74 <= local40; local74++) { - @Pc(104) int local104 = this.aByteArray38[(this.anInt2646 <= local74 ? local74 - this.anInt2646 : local74) & 0xFF] & 0xFF; - for (@Pc(108) int local108 = local66 - 1; local108 <= local70; local108++) { - @Pc(138) int local138 = (this.aByteArray38[(this.anInt2645 <= local108 ? local108 - this.anInt2645 : local108) + local104 & 0xFF] & 0xFF) * 2; - @Pc(142) int local142 = -(local108 << 12); - @Pc(146) int local146 = local138 + 1; - @Pc(151) int local151 = local142 + local62 - this.aShortArray35[local138]; - @Pc(162) int local162 = local32 - this.aShortArray35[local146] - (local74 << 12); - local165 = this.anInt2638; - @Pc(201) int local201; - if (local165 == 1) { - local201 = local162 * local162 + local151 * local151 >> 12; - } else if (local165 == 3) { - local151 = local151 < 0 ? -local151 : local151; - local162 = local162 >= 0 ? local162 : -local162; - local201 = local162 >= local151 ? local162 : local151; - } else if (local165 == 4) { - local151 = (int) (Math.sqrt((double) ((float) (local151 < 0 ? -local151 : local151) / 4096.0F)) * 4096.0D); - local162 = (int) (Math.sqrt((double) ((float) (local162 >= 0 ? local162 : -local162) / 4096.0F)) * 4096.0D); - local201 = local162 + local151; - local201 = local201 * local201 >> 12; - } else if (local165 == 5) { - local151 *= local151; - local162 *= local162; - local201 = (int) (Math.sqrt(Math.sqrt((double) ((float) (local162 + local151) / 1.6777216E7F))) * 4096.0D); - } else if (local165 == 2) { - local201 = (local151 >= 0 ? local151 : -local151) + (local162 < 0 ? -local162 : local162); - } else { - local201 = (int) (Math.sqrt((double) ((float) (local162 * local162 + local151 * local151) / 1.6777216E7F)) * 4096.0D); - } - if (local201 < anInt1091) { - anInt5526 = anInt5443; - anInt5443 = anInt3041; - anInt3041 = anInt1091; - anInt1091 = local201; - } else if (local201 < anInt3041) { - anInt5526 = anInt5443; - anInt5443 = anInt3041; - anInt3041 = local201; - } else if (anInt5443 > local201) { - anInt5526 = anInt5443; - anInt5443 = local201; - } else if (local201 < anInt5526) { - anInt5526 = local201; - } - } - } - local165 = this.anInt2635; - if (local165 == 0) { - local19[local42] = anInt1091; - } else if (local165 == 1) { - local19[local42] = anInt3041; - } else if (local165 == 3) { - local19[local42] = anInt5443; - } else if (local165 == 4) { - local19[local42] = anInt5526; - } else if (local165 == 2) { - local19[local42] = anInt3041 - anInt1091; + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(19) int[] local19 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(28) int local28 = Texture.heightFractions[arg0]; + for (@Pc(30) int local30 = 0; local30 < Texture.width; local30++) { + @Pc(41) int local41 = Texture.widthFractions[local30]; + @Pc(76) int local76; + if (local41 > this.anInt4971 && 4096 - this.anInt4971 > local41 && 2048 - this.anInt4971 < local28 && local28 < this.anInt4971 + 2048) { + local76 = 2048 - local41; + local76 = local76 < 0 ? -local76 : local76; + local76 <<= 0xC; + local76 /= 2048 - this.anInt4971; + local19[local30] = 4096 - local76; + } else if (local41 > 2048 - this.anInt4971 && local41 < this.anInt4971 + 2048) { + local76 = local28 - 2048; + local76 = local76 >= 0 ? local76 : -local76; + local76 -= this.anInt4971; + local76 <<= 0xC; + local19[local30] = local76 / (2048 - this.anInt4971); + } else if (local28 < this.anInt4971 || 4096 - this.anInt4971 < local28) { + local76 = local41 - 2048; + @Pc(188) int local188 = local76 < 0 ? -local76 : local76; + @Pc(193) int local193 = local188 - this.anInt4971; + @Pc(197) int local197 = local193 << 12; + local19[local30] = local197 / (2048 - this.anInt4971); + } else if (this.anInt4971 <= local41 && local41 <= 4096 - this.anInt4971) { + local19[local30] = 0; + } else { + local76 = 2048 - local28; + local76 = local76 < 0 ? -local76 : local76; + local76 <<= 0xC; + local76 /= 2048 - this.anInt4971; + local19[local30] = 4096 - local76; } } } return local19; } - @OriginalMember(owner = "client!hm", name = "a", descriptor = "(ILclient!wa;Z)V") + @OriginalMember(owner = "client!sa", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { if (arg0 == 0) { - this.anInt2645 = this.anInt2646 = arg1.g1(); - } else if (arg0 == 1) { - this.anInt2639 = arg1.g1(); - } else if (arg0 == 2) { - this.anInt2636 = arg1.g2(); - } else if (arg0 == 3) { - this.anInt2635 = arg1.g1(); - } else if (arg0 == 4) { - this.anInt2638 = arg1.g1(); - } else if (arg0 == 5) { - this.anInt2645 = arg1.g1(); - } else if (arg0 == 6) { - this.anInt2646 = arg1.g1(); + this.anInt4971 = arg1.g2(); } } } diff --git a/client/src/main/java/rt4/TextureOp15.java b/client/src/main/java/rt4/TextureOp15.java index 318c9e6..455c574 100644 --- a/client/src/main/java/rt4/TextureOp15.java +++ b/client/src/main/java/rt4/TextureOp15.java @@ -1,93 +1,167 @@ package rt4; +import java.util.Random; import org.openrs2.deob.annotation.OriginalArg; import org.openrs2.deob.annotation.OriginalClass; import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; -@OriginalClass("client!je") +@OriginalClass("client!hm") public final class TextureOp15 extends TextureOp { - @OriginalMember(owner = "client!hd", name = "i", descriptor = "I") - public static int anInt2433 = 0; + @OriginalMember(owner = "client!ui", name = "Q", descriptor = "I") + public static int anInt5526; + @OriginalMember(owner = "client!uf", name = "p", descriptor = "I") + public static int anInt5443; + @OriginalMember(owner = "client!cl", name = "X", descriptor = "I") + public static int anInt1091; + @OriginalMember(owner = "client!jg", name = "g", descriptor = "I") + public static int anInt3041; + @OriginalMember(owner = "client!hm", name = "S", descriptor = "I") + private int anInt2635 = 2; - @OriginalMember(owner = "client!je", name = "", descriptor = "()V") + @OriginalMember(owner = "client!hm", name = "U", descriptor = "I") + private int anInt2636 = 2048; + + @OriginalMember(owner = "client!hm", name = "Z", descriptor = "I") + private int anInt2639 = 0; + + @OriginalMember(owner = "client!hm", name = "W", descriptor = "I") + private int anInt2638 = 1; + + @OriginalMember(owner = "client!hm", name = "jb", descriptor = "I") + private int anInt2646 = 5; + + @OriginalMember(owner = "client!hm", name = "X", descriptor = "[B") + private byte[] aByteArray38 = new byte[512]; + + @OriginalMember(owner = "client!hm", name = "ib", descriptor = "I") + private int anInt2645 = 5; + + @OriginalMember(owner = "client!hm", name = "eb", descriptor = "[S") + private short[] aShortArray35 = new short[512]; + + @OriginalMember(owner = "client!hm", name = "", descriptor = "()V") public TextureOp15() { - super(1, false); + super(0, true); } - @OriginalMember(owner = "client!je", name = "a", descriptor = "(IBI)V") - private void method2382(@OriginalArg(0) int arg0, @OriginalArg(2) int arg1) { - @Pc(13) int local13 = Static173.anIntArray367[arg1]; - @Pc(17) int local17 = Static10.anIntArray153[arg0]; - @Pc(28) float local28 = (float) Math.atan2((double) (local13 - 2048), (double) (local17 - 2048)); - if ((double) local28 >= -3.141592653589793D && -2.356194490192345D >= (double) local28) { - anInt2433 = arg0; - Static267.anInt5776 = arg1; - } else if ((double) local28 <= -1.5707963267948966D && -2.356194490192345D <= (double) local28) { - Static267.anInt5776 = arg0; - anInt2433 = arg1; - } else if ((double) local28 <= -0.7853981633974483D && (double) local28 >= -1.5707963267948966D) { - Static267.anInt5776 = Static10.anInt4457 - arg0; - anInt2433 = arg1; - } else if (local28 <= 0.0F && (double) local28 >= -0.7853981633974483D) { - Static267.anInt5776 = arg1; - anInt2433 = Static10.anInt4165 - arg0; - } else if (local28 >= 0.0F && (double) local28 <= 0.7853981633974483D) { - Static267.anInt5776 = Static10.anInt4457 - arg1; - anInt2433 = Static10.anInt4165 - arg0; - } else if ((double) local28 >= 0.7853981633974483D && (double) local28 <= 1.5707963267948966D) { - Static267.anInt5776 = Static10.anInt4457 - arg0; - anInt2433 = Static10.anInt4165 - arg1; - } else if ((double) local28 >= 1.5707963267948966D && (double) local28 <= 2.356194490192345D) { - anInt2433 = Static10.anInt4165 - arg1; - Static267.anInt5776 = arg0; - } else if ((double) local28 >= 2.356194490192345D && (double) local28 <= 3.141592653589793D) { - Static267.anInt5776 = Static10.anInt4457 - arg1; - anInt2433 = arg0; - } - Static267.anInt5776 &= Static34.anInt1060; - anInt2433 &= Static10.anInt3473; - } - - @OriginalMember(owner = "client!je", name = "a", descriptor = "(ILclient!wa;Z)V") - @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { - if (arg0 == 0) { - this.aBoolean309 = arg1.g1() == 1; + @OriginalMember(owner = "client!hm", name = "f", descriptor = "(B)V") + private void method2052() { + @Pc(12) Random local12 = new Random((long) this.anInt2639); + this.aShortArray35 = new short[512]; + if (this.anInt2636 > 0) { + for (@Pc(26) int local26 = 0; local26 < 512; local26++) { + this.aShortArray35[local26] = (short) Static171.method3219(this.anInt2636, local12); + } } } - @OriginalMember(owner = "client!je", name = "a", descriptor = "(IB)[I") + @OriginalMember(owner = "client!hm", name = "e", descriptor = "(I)V") @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(19) int[] local19 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - for (@Pc(26) int local26 = 0; local26 < Static10.anInt4457; local26++) { - this.method2382(arg0, local26); - @Pc(40) int[] local40 = this.method4624(0, anInt2433); - local19[local26] = local40[Static267.anInt5776]; + public final void postDecode() { + this.aByteArray38 = Static89.method1837(this.anInt2639); + this.method2052(); + } + + @OriginalMember(owner = "client!hm", name = "a", descriptor = "(IB)[I") + @Override + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(19) int[] local19 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(32) int local32 = this.anInt2646 * Texture.heightFractions[arg0] + 2048; + @Pc(36) int local36 = local32 >> 12; + @Pc(40) int local40 = local36 + 1; + for (@Pc(42) int local42 = 0; local42 < Texture.width; local42++) { + anInt5526 = Integer.MAX_VALUE; + anInt5443 = Integer.MAX_VALUE; + anInt3041 = Integer.MAX_VALUE; + anInt1091 = Integer.MAX_VALUE; + @Pc(62) int local62 = this.anInt2645 * Texture.widthFractions[local42] + 2048; + @Pc(66) int local66 = local62 >> 12; + @Pc(70) int local70 = local66 + 1; + @Pc(165) int local165; + for (@Pc(74) int local74 = local36 - 1; local74 <= local40; local74++) { + @Pc(104) int local104 = this.aByteArray38[(this.anInt2646 <= local74 ? local74 - this.anInt2646 : local74) & 0xFF] & 0xFF; + for (@Pc(108) int local108 = local66 - 1; local108 <= local70; local108++) { + @Pc(138) int local138 = (this.aByteArray38[(this.anInt2645 <= local108 ? local108 - this.anInt2645 : local108) + local104 & 0xFF] & 0xFF) * 2; + @Pc(142) int local142 = -(local108 << 12); + @Pc(146) int local146 = local138 + 1; + @Pc(151) int local151 = local142 + local62 - this.aShortArray35[local138]; + @Pc(162) int local162 = local32 - this.aShortArray35[local146] - (local74 << 12); + local165 = this.anInt2638; + @Pc(201) int local201; + if (local165 == 1) { + local201 = local162 * local162 + local151 * local151 >> 12; + } else if (local165 == 3) { + local151 = local151 < 0 ? -local151 : local151; + local162 = local162 >= 0 ? local162 : -local162; + local201 = local162 >= local151 ? local162 : local151; + } else if (local165 == 4) { + local151 = (int) (Math.sqrt((double) ((float) (local151 < 0 ? -local151 : local151) / 4096.0F)) * 4096.0D); + local162 = (int) (Math.sqrt((double) ((float) (local162 >= 0 ? local162 : -local162) / 4096.0F)) * 4096.0D); + local201 = local162 + local151; + local201 = local201 * local201 >> 12; + } else if (local165 == 5) { + local151 *= local151; + local162 *= local162; + local201 = (int) (Math.sqrt(Math.sqrt((double) ((float) (local162 + local151) / 1.6777216E7F))) * 4096.0D); + } else if (local165 == 2) { + local201 = (local151 >= 0 ? local151 : -local151) + (local162 < 0 ? -local162 : local162); + } else { + local201 = (int) (Math.sqrt((double) ((float) (local162 * local162 + local151 * local151) / 1.6777216E7F)) * 4096.0D); + } + if (local201 < anInt1091) { + anInt5526 = anInt5443; + anInt5443 = anInt3041; + anInt3041 = anInt1091; + anInt1091 = local201; + } else if (local201 < anInt3041) { + anInt5526 = anInt5443; + anInt5443 = anInt3041; + anInt3041 = local201; + } else if (anInt5443 > local201) { + anInt5526 = anInt5443; + anInt5443 = local201; + } else if (local201 < anInt5526) { + anInt5526 = local201; + } + } + } + local165 = this.anInt2635; + if (local165 == 0) { + local19[local42] = anInt1091; + } else if (local165 == 1) { + local19[local42] = anInt3041; + } else if (local165 == 3) { + local19[local42] = anInt5443; + } else if (local165 == 4) { + local19[local42] = anInt5526; + } else if (local165 == 2) { + local19[local42] = anInt3041 - anInt1091; + } } } return local19; } - @OriginalMember(owner = "client!je", name = "b", descriptor = "(II)[[I") + @OriginalMember(owner = "client!hm", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final int[][] method4638(@OriginalArg(1) int arg0) { - @Pc(15) int[][] local15 = this.aClass103_41.method3173(arg0); - if (this.aClass103_41.aBoolean195) { - @Pc(28) int[] local28 = local15[0]; - @Pc(32) int[] local32 = local15[2]; - @Pc(36) int[] local36 = local15[1]; - for (@Pc(38) int local38 = 0; local38 < Static10.anInt4457; local38++) { - this.method2382(arg0, local38); - @Pc(52) int[][] local52 = this.method4634(anInt2433, 0); - local28[local38] = local52[0][Static267.anInt5776]; - local36[local38] = local52[1][Static267.anInt5776]; - local32[local38] = local52[2][Static267.anInt5776]; - } + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + if (arg0 == 0) { + this.anInt2645 = this.anInt2646 = arg1.g1(); + } else if (arg0 == 1) { + this.anInt2639 = arg1.g1(); + } else if (arg0 == 2) { + this.anInt2636 = arg1.g2(); + } else if (arg0 == 3) { + this.anInt2635 = arg1.g1(); + } else if (arg0 == 4) { + this.anInt2638 = arg1.g1(); + } else if (arg0 == 5) { + this.anInt2645 = arg1.g1(); + } else if (arg0 == 6) { + this.anInt2646 = arg1.g1(); } - return local15; } } diff --git a/client/src/main/java/rt4/TextureOp16.java b/client/src/main/java/rt4/TextureOp16.java index 8536ed0..9116b0c 100644 --- a/client/src/main/java/rt4/TextureOp16.java +++ b/client/src/main/java/rt4/TextureOp16.java @@ -5,77 +5,76 @@ import org.openrs2.deob.annotation.OriginalClass; import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; -@OriginalClass("client!ke") +@OriginalClass("client!f") public final class TextureOp16 extends TextureOp { - @OriginalMember(owner = "client!ke", name = "V", descriptor = "I") - private int anInt3292 = 32768; + @OriginalMember(owner = "client!f", name = "R", descriptor = "I") + private int anInt1935 = 204; - @OriginalMember(owner = "client!ke", name = "", descriptor = "()V") + @OriginalMember(owner = "client!f", name = "Y", descriptor = "I") + private int anInt1940 = 1; + + @OriginalMember(owner = "client!f", name = "Q", descriptor = "I") + private int anInt1934 = 1; + + @OriginalMember(owner = "client!f", name = "", descriptor = "()V") public TextureOp16() { - super(3, false); + super(0, true); } - @OriginalMember(owner = "client!ke", name = "b", descriptor = "(II)[[I") + @OriginalMember(owner = "client!f", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final int[][] method4638(@OriginalArg(1) int arg0) { - @Pc(17) int[][] local17 = this.aClass103_41.method3173(arg0); - if (this.aClass103_41.aBoolean195) { - @Pc(28) int[] local28 = this.method4624(1, arg0); - @Pc(34) int[] local34 = this.method4624(2, arg0); - @Pc(38) int[] local38 = local17[2]; - @Pc(42) int[] local42 = local17[1]; - @Pc(46) int[] local46 = local17[0]; - for (@Pc(48) int local48 = 0; local48 < Static10.anInt4457; local48++) { - @Pc(61) int local61 = local28[local48] * 255 >> 12 & 0xFF; - @Pc(70) int local70 = local34[local48] * this.anInt3292 >> 12; - @Pc(78) int local78 = local70 * Static9.anIntArray299[local61] >> 12; - @Pc(86) int local86 = Static9.anIntArray282[local61] * local70 >> 12; - @Pc(94) int local94 = (local78 >> 12) + local48 & Static34.anInt1060; - @Pc(103) int local103 = Static10.anInt3473 & arg0 + (local86 >> 12); - @Pc(109) int[][] local109 = this.method4634(local103, 0); - local46[local48] = local109[0][local94]; - local42[local48] = local109[1][local94]; - local38[local48] = local109[2][local94]; - } + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + if (arg0 == 0) { + this.anInt1934 = arg1.g1(); + } else if (arg0 == 1) { + this.anInt1940 = arg1.g1(); + } else if (arg0 == 2) { + this.anInt1935 = arg1.g2(); } - return local17; } - @OriginalMember(owner = "client!ke", name = "a", descriptor = "(IB)[I") + @OriginalMember(owner = "client!f", name = "a", descriptor = "(IB)[I") @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(19) int[] local19 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(29) int[] local29 = this.method4624(1, arg0); - @Pc(35) int[] local35 = this.method4624(2, arg0); - for (@Pc(37) int local37 = 0; local37 < Static10.anInt4457; local37++) { - @Pc(49) int local49 = this.anInt3292 * local35[local37] >> 12; - @Pc(57) int local57 = local29[local37] >> 4 & 0xFF; - @Pc(65) int local65 = Static9.anIntArray299[local57] * local49 >> 12; - @Pc(73) int local73 = Static9.anIntArray282[local57] * local49 >> 12; - @Pc(81) int local81 = Static34.anInt1060 & (local65 >> 12) + local37; - @Pc(89) int local89 = Static10.anInt3473 & (local73 >> 12) + arg0; - @Pc(95) int[] local95 = this.method4624(0, local89); - local19[local37] = local95[local81]; + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(19) int[] local19 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + for (@Pc(25) int local25 = 0; local25 < Texture.width; local25++) { + @Pc(32) int local32 = Texture.widthFractions[local25]; + @Pc(36) int local36 = Texture.heightFractions[arg0]; + @Pc(43) int local43 = this.anInt1934 * local32 >> 12; + @Pc(50) int local50 = local36 * this.anInt1940 >> 12; + @Pc(60) int local60 = this.anInt1934 * (local32 % (4096 / this.anInt1934)); + @Pc(70) int local70 = local36 % (4096 / this.anInt1940) * this.anInt1940; + if (this.anInt1935 > local70) { + for (local43 -= local50; local43 < 0; local43 += 4) { + } + while (local43 > 3) { + local43 -= 4; + } + if (local43 != 1) { + local19[local25] = 0; + continue; + } + if (this.anInt1935 > local60) { + local19[local25] = 0; + continue; + } + } + if (local60 < this.anInt1935) { + for (local43 -= local50; local43 < 0; local43 += 4) { + } + while (local43 > 3) { + local43 -= 4; + } + if (local43 > 0) { + local19[local25] = 0; + continue; + } + } + local19[local25] = 4096; } } return local19; } - - @OriginalMember(owner = "client!ke", name = "a", descriptor = "(ILclient!wa;Z)V") - @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { - if (arg0 == 0) { - this.anInt3292 = arg1.g2() << 4; - } else if (arg0 == 1) { - this.aBoolean309 = arg1.g1() == 1; - } - } - - @OriginalMember(owner = "client!ke", name = "e", descriptor = "(I)V") - @Override - public final void method4630() { - Static9.method185(); - } } diff --git a/client/src/main/java/rt4/TextureOp17.java b/client/src/main/java/rt4/TextureOp17.java index f469f78..7a032a3 100644 --- a/client/src/main/java/rt4/TextureOp17.java +++ b/client/src/main/java/rt4/TextureOp17.java @@ -1,170 +1,169 @@ package rt4; -import java.util.Random; import org.openrs2.deob.annotation.OriginalArg; import org.openrs2.deob.annotation.OriginalClass; import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; -@OriginalClass("client!mc") +@OriginalClass("client!hk") public final class TextureOp17 extends TextureOp { - @OriginalMember(owner = "client!mc", name = "U", descriptor = "I") - private int anInt3670; + @OriginalMember(owner = "client!hk", name = "Q", descriptor = "I") + private int anInt2543; - @OriginalMember(owner = "client!mc", name = "V", descriptor = "I") - private int anInt3671; + @OriginalMember(owner = "client!hk", name = "Z", descriptor = "I") + private int anInt2551; - @OriginalMember(owner = "client!mc", name = "X", descriptor = "[[I") - private int[][] anIntArrayArray26; + @OriginalMember(owner = "client!hk", name = "cb", descriptor = "I") + private int anInt2553; - @OriginalMember(owner = "client!mc", name = "cb", descriptor = "[I") - private int[] anIntArray352; + @OriginalMember(owner = "client!hk", name = "gb", descriptor = "I") + private int anInt2554; - @OriginalMember(owner = "client!mc", name = "jb", descriptor = "I") - private int anInt3679; + @OriginalMember(owner = "client!hk", name = "ib", descriptor = "I") + private int anInt2556; - @OriginalMember(owner = "client!mc", name = "sb", descriptor = "[[I") - private int[][] anIntArrayArray27; + @OriginalMember(owner = "client!hk", name = "jb", descriptor = "I") + private int anInt2557; - @OriginalMember(owner = "client!mc", name = "P", descriptor = "I") - private int anInt3667 = 204; + @OriginalMember(owner = "client!hk", name = "T", descriptor = "I") + private int anInt2546 = 0; - @OriginalMember(owner = "client!mc", name = "bb", descriptor = "I") - private int anInt3673 = 1024; + @OriginalMember(owner = "client!hk", name = "U", descriptor = "I") + private int anInt2547 = 0; - @OriginalMember(owner = "client!mc", name = "eb", descriptor = "I") - private int anInt3675 = 0; + @OriginalMember(owner = "client!hk", name = "X", descriptor = "I") + private int anInt2549 = 0; - @OriginalMember(owner = "client!mc", name = "lb", descriptor = "I") - private int anInt3681 = 409; - - @OriginalMember(owner = "client!mc", name = "hb", descriptor = "I") - private int anInt3677 = 8; - - @OriginalMember(owner = "client!mc", name = "W", descriptor = "I") - private int anInt3672 = 81; - - @OriginalMember(owner = "client!mc", name = "ub", descriptor = "I") - private int anInt3685 = 4; - - @OriginalMember(owner = "client!mc", name = "ib", descriptor = "I") - private int anInt3678 = 1024; - - @OriginalMember(owner = "client!mc", name = "", descriptor = "()V") + @OriginalMember(owner = "client!hk", name = "", descriptor = "()V") public TextureOp17() { - super(0, true); + super(1, false); } - @OriginalMember(owner = "client!mc", name = "e", descriptor = "(I)V") + @OriginalMember(owner = "client!hk", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final void method4630() { - this.method2908(); - } - - @OriginalMember(owner = "client!mc", name = "a", descriptor = "(ILclient!wa;Z)V") - @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { if (arg0 == 0) { - this.anInt3685 = arg1.g1(); + this.anInt2546 = arg1.g2b(); } else if (arg0 == 1) { - this.anInt3677 = arg1.g1(); + this.anInt2549 = (arg1.g1b() << 12) / 100; } else if (arg0 == 2) { - this.anInt3681 = arg1.g2(); - } else if (arg0 == 3) { - this.anInt3667 = arg1.g2(); - } else if (arg0 == 4) { - this.anInt3678 = arg1.g2(); - } else if (arg0 == 5) { - this.anInt3675 = arg1.g2(); - } else if (arg0 == 6) { - this.anInt3672 = arg1.g2(); - } else if (arg0 == 7) { - this.anInt3673 = arg1.g2(); + this.anInt2547 = (arg1.g1b() << 12) / 100; } } - @OriginalMember(owner = "client!mc", name = "i", descriptor = "(I)V") - private void method2908() { - @Pc(8) Random local8 = new Random((long) this.anInt3677); - this.anInt3670 = 4096 / this.anInt3677; - this.anInt3671 = this.anInt3672 / 2; - this.anIntArrayArray26 = new int[this.anInt3677][this.anInt3685 + 1]; - @Pc(34) int local34 = this.anInt3670 / 2; - this.anIntArray352 = new int[this.anInt3677 + 1]; - this.anIntArrayArray27 = new int[this.anInt3677][this.anInt3685]; - this.anInt3679 = 4096 / this.anInt3685; - this.anIntArray352[0] = 0; - @Pc(64) int local64 = this.anInt3679 / 2; - for (@Pc(66) int local66 = 0; local66 < this.anInt3677; local66++) { - @Pc(82) int local82; - @Pc(94) int local94; - if (local66 > 0) { - local82 = this.anInt3670; - local94 = (Static171.method3219(4096, local8) - 2048) * this.anInt3667 >> 12; - @Pc(102) int local102 = local82 + (local94 * local34 >> 12); - this.anIntArray352[local66] = this.anIntArray352[local66 - 1] + local102; - } - this.anIntArrayArray26[local66][0] = 0; - for (local82 = 0; local82 < this.anInt3685; local82++) { - if (local82 > 0) { - local94 = this.anInt3679; - @Pc(150) int local150 = (Static171.method3219(4096, local8) - 2048) * this.anInt3681 >> 12; - local94 += local64 * local150 >> 12; - this.anIntArrayArray26[local66][local82] = this.anIntArrayArray26[local66][local82 - 1] + local94; - } - this.anIntArrayArray27[local66][local82] = this.anInt3673 <= 0 ? 4096 : 4096 - Static171.method3219(this.anInt3673, local8); - } - this.anIntArrayArray26[local66][this.anInt3685] = 4096; + @OriginalMember(owner = "client!hk", name = "a", descriptor = "(IIII)V") + private void method1991(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(3) int arg2) { + @Pc(35) int local35 = arg0 <= 2048 ? arg0 * (arg1 + 4096) >> 12 : arg0 + arg1 - (arg0 * arg1 >> 12); + if (local35 <= 0) { + this.anInt2554 = this.anInt2543 = this.anInt2553 = arg0; + return; + } + @Pc(44) int local44 = arg2 * 6; + @Pc(51) int local51 = arg0 + arg0 - local35; + @Pc(55) int local55 = local44 >> 12; + @Pc(64) int local64 = (local35 - local51 << 12) / local35; + @Pc(70) int local70 = local44 - (local55 << 12); + @Pc(78) int local78 = local35 * local64 >> 12; + @Pc(84) int local84 = local78 * local70 >> 12; + @Pc(88) int local88 = local84 + local51; + @Pc(93) int local93 = local35 - local84; + if (local55 == 0) { + this.anInt2553 = local51; + this.anInt2554 = local35; + this.anInt2543 = local88; + } else if (local55 == 1) { + this.anInt2553 = local51; + this.anInt2543 = local35; + this.anInt2554 = local93; + } else if (local55 == 2) { + this.anInt2554 = local51; + this.anInt2543 = local35; + this.anInt2553 = local88; + } else if (local55 == 3) { + this.anInt2543 = local93; + this.anInt2553 = local35; + this.anInt2554 = local51; + } else if (local55 == 4) { + this.anInt2553 = local35; + this.anInt2554 = local88; + this.anInt2543 = local51; + } else if (local55 == 5) { + this.anInt2543 = local51; + this.anInt2554 = local35; + this.anInt2553 = local93; } - this.anIntArray352[this.anInt3677] = 4096; } - @OriginalMember(owner = "client!mc", name = "a", descriptor = "(IB)[I") - @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(11) int[] local11 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(18) int local18 = 0; - @Pc(25) int local25; - for (local25 = Static10.anIntArray153[arg0] + this.anInt3675; local25 < 0; local25 += 4096) { - } - while (local25 > 4096) { - local25 -= 4096; - } - while (this.anInt3677 > local18 && local25 >= this.anIntArray352[local18]) { - local18++; - } - @Pc(60) int local60 = local18 - 1; - @Pc(65) int local65 = this.anIntArray352[local18]; - @Pc(74) boolean local74 = (local18 & 0x1) == 0; - @Pc(81) int local81 = this.anIntArray352[local18 - 1]; - if (local81 + this.anInt3671 < local25 && local65 - this.anInt3671 > local25) { - for (@Pc(100) int local100 = 0; local100 < Static10.anInt4457; local100++) { - @Pc(105) int local105 = 0; - @Pc(114) int local114 = local74 ? this.anInt3678 : -this.anInt3678; - @Pc(126) int local126; - for (local126 = Static173.anIntArray367[local100] + (this.anInt3679 * local114 >> 12); local126 < 0; local126 += 4096) { - } - while (local126 > 4096) { - local126 -= 4096; - } - while (this.anInt3685 > local105 && local126 >= this.anIntArrayArray26[local60][local105]) { - local105++; - } - @Pc(172) int local172 = this.anIntArrayArray26[local60][local105]; - @Pc(176) int local176 = local105 - 1; - @Pc(183) int local183 = this.anIntArrayArray26[local60][local176]; - if (local183 + this.anInt3671 < local126 && local172 - this.anInt3671 > local126) { - local11[local100] = this.anIntArrayArray27[local60][local176]; - } else { - local11[local100] = 0; - } - } + @OriginalMember(owner = "client!hk", name = "a", descriptor = "(BIII)V") + private void method1992(@OriginalArg(1) int arg0, @OriginalArg(2) int arg1, @OriginalArg(3) int arg2) { + @Pc(12) int local12 = arg0 > arg1 ? arg0 : arg1; + @Pc(31) int local31 = arg2 <= local12 ? local12 : arg2; + @Pc(38) int local38 = arg1 > arg0 ? arg0 : arg1; + @Pc(49) int local49 = arg2 >= local38 ? local38 : arg2; + @Pc(54) int local54 = local31 - local49; + if (local54 > 0) { + @Pc(65) int local65 = (local31 - arg1 << 12) / local54; + @Pc(74) int local74 = (local31 - arg0 << 12) / local54; + @Pc(83) int local83 = (local31 - arg2 << 12) / local54; + if (arg0 == local31) { + this.anInt2551 = local49 == arg1 ? local83 + 20480 : -local65 + 4096; + } else if (local31 == arg1) { + this.anInt2551 = local49 == arg2 ? local74 + 4096 : -local83 + 12288; } else { - ArrayUtils.fill(local11, 0, Static10.anInt4457, 0); + this.anInt2551 = local49 == arg0 ? local65 + 12288 : -local74 + 20480; + } + this.anInt2551 /= 6; + } else { + this.anInt2551 = 0; + } + this.anInt2556 = (local49 + local31) / 2; + if (this.anInt2556 > 0 && this.anInt2556 < 4096) { + this.anInt2557 = (local54 << 12) / (this.anInt2556 > 2048 ? 8192 - this.anInt2556 * 2 : this.anInt2556 * 2); + } else { + this.anInt2557 = 0; + } + } + + @OriginalMember(owner = "client!hk", name = "b", descriptor = "(II)[[I") + @Override + public final int[][] getColorOutput(@OriginalArg(1) int arg0) { + @Pc(17) int[][] local17 = this.colorImageCache.get(arg0); + if (this.colorImageCache.invalid) { + @Pc(28) int[][] local28 = this.getChildColorOutput(arg0, 0); + @Pc(32) int[] local32 = local28[0]; + @Pc(36) int[] local36 = local28[1]; + @Pc(40) int[] local40 = local28[2]; + @Pc(44) int[] local44 = local17[1]; + @Pc(48) int[] local48 = local17[2]; + @Pc(52) int[] local52 = local17[0]; + for (@Pc(54) int local54 = 0; local54 < Texture.width; local54++) { + this.method1992(local32[local54], local36[local54], local40[local54]); + this.anInt2556 += this.anInt2547; + if (this.anInt2556 < 0) { + this.anInt2556 = 0; + } + this.anInt2557 += this.anInt2549; + if (this.anInt2556 > 4096) { + this.anInt2556 = 4096; + } + if (this.anInt2557 < 0) { + this.anInt2557 = 0; + } + if (this.anInt2557 > 4096) { + this.anInt2557 = 4096; + } + for (this.anInt2551 += this.anInt2546; this.anInt2551 < 0; this.anInt2551 += 4096) { + } + while (this.anInt2551 > 4096) { + this.anInt2551 -= 4096; + } + this.method1991(this.anInt2556, this.anInt2557, this.anInt2551); + local52[local54] = this.anInt2554; + local44[local54] = this.anInt2543; + local48[local54] = this.anInt2553; } } - return local11; + return local17; } } diff --git a/client/src/main/java/rt4/TextureOp18.java b/client/src/main/java/rt4/TextureOp18.java deleted file mode 100644 index 85a15ff..0000000 --- a/client/src/main/java/rt4/TextureOp18.java +++ /dev/null @@ -1,66 +0,0 @@ -package rt4; - -import org.openrs2.deob.annotation.OriginalArg; -import org.openrs2.deob.annotation.OriginalClass; -import org.openrs2.deob.annotation.OriginalMember; -import org.openrs2.deob.annotation.Pc; - -@OriginalClass("client!mg") -public final class TextureOp18 extends TextureOp { - - @OriginalMember(owner = "client!mg", name = "R", descriptor = "I") - private int anInt3812 = 4096; - - @OriginalMember(owner = "client!mg", name = "Z", descriptor = "I") - private int anInt3816 = 4096; - - @OriginalMember(owner = "client!mg", name = "X", descriptor = "I") - private int anInt3815 = 4096; - - @OriginalMember(owner = "client!mg", name = "", descriptor = "()V") - public TextureOp18() { - super(1, false); - } - - @OriginalMember(owner = "client!mg", name = "a", descriptor = "(ILclient!wa;Z)V") - @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { - if (arg0 == 0) { - this.anInt3816 = arg1.g2(); - } else if (arg0 == 1) { - this.anInt3812 = arg1.g2(); - } else if (arg0 == 2) { - this.anInt3815 = arg1.g2(); - } - } - - @OriginalMember(owner = "client!mg", name = "b", descriptor = "(II)[[I") - @Override - public final int[][] method4638(@OriginalArg(1) int arg0) { - @Pc(16) int[][] local16 = this.aClass103_41.method3173(arg0); - if (this.aClass103_41.aBoolean195) { - @Pc(27) int[][] local27 = this.method4634(arg0, 0); - @Pc(31) int[] local31 = local27[0]; - @Pc(35) int[] local35 = local27[1]; - @Pc(39) int[] local39 = local27[2]; - @Pc(43) int[] local43 = local16[1]; - @Pc(47) int[] local47 = local16[0]; - @Pc(51) int[] local51 = local16[2]; - for (@Pc(53) int local53 = 0; local53 < Static10.anInt4457; local53++) { - @Pc(64) int local64 = local31[local53]; - @Pc(68) int local68 = local35[local53]; - @Pc(72) int local72 = local39[local53]; - if (local64 == local72 && local68 == local72) { - local47[local53] = this.anInt3816 * local64 >> 12; - local43[local53] = local72 * this.anInt3812 >> 12; - local51[local53] = local68 * this.anInt3815 >> 12; - } else { - local47[local53] = this.anInt3816; - local43[local53] = this.anInt3812; - local51[local53] = this.anInt3815; - } - } - } - return local16; - } -} diff --git a/client/src/main/java/rt4/TextureOp19.java b/client/src/main/java/rt4/TextureOp19.java index 87d68d5..1bee9ab 100644 --- a/client/src/main/java/rt4/TextureOp19.java +++ b/client/src/main/java/rt4/TextureOp19.java @@ -5,104 +5,77 @@ import org.openrs2.deob.annotation.OriginalClass; import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; -@OriginalClass("client!mh") +@OriginalClass("client!ke") public final class TextureOp19 extends TextureOp { - @OriginalMember(owner = "client!mh", name = "P", descriptor = "I") - private int anInt3843 = 0; + @OriginalMember(owner = "client!ke", name = "V", descriptor = "I") + private int anInt3292 = 32768; - @OriginalMember(owner = "client!mh", name = "T", descriptor = "I") - private int anInt3847 = 12288; - - @OriginalMember(owner = "client!mh", name = "bb", descriptor = "I") - private int anInt3854 = 2048; - - @OriginalMember(owner = "client!mh", name = "U", descriptor = "I") - private int anInt3848 = 0; - - @OriginalMember(owner = "client!mh", name = "ib", descriptor = "I") - private int anInt3860 = 2048; - - @OriginalMember(owner = "client!mh", name = "Q", descriptor = "I") - private int anInt3844 = 4096; - - @OriginalMember(owner = "client!mh", name = "kb", descriptor = "I") - private int anInt3862 = 8192; - - @OriginalMember(owner = "client!mh", name = "", descriptor = "()V") + @OriginalMember(owner = "client!ke", name = "", descriptor = "()V") public TextureOp19() { - super(0, true); + super(3, false); } - @OriginalMember(owner = "client!mh", name = "a", descriptor = "(ILclient!wa;Z)V") + @OriginalMember(owner = "client!ke", name = "b", descriptor = "(II)[[I") @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { - if (arg0 == 0) { - this.anInt3860 = arg1.g2(); - } else if (arg0 == 1) { - this.anInt3843 = arg1.g2(); - } else if (arg0 == 2) { - this.anInt3848 = arg1.g2(); - } else if (arg0 == 3) { - this.anInt3854 = arg1.g2(); - } else if (arg0 == 4) { - this.anInt3847 = arg1.g2(); - } else if (arg0 == 5) { - this.anInt3844 = arg1.g2(); - } else if (arg0 == 6) { - this.anInt3862 = arg1.g2(); + public final int[][] getColorOutput(@OriginalArg(1) int arg0) { + @Pc(17) int[][] local17 = this.colorImageCache.get(arg0); + if (this.colorImageCache.invalid) { + @Pc(28) int[] local28 = this.getChildMonochromeOutput(1, arg0); + @Pc(34) int[] local34 = this.getChildMonochromeOutput(2, arg0); + @Pc(38) int[] local38 = local17[2]; + @Pc(42) int[] local42 = local17[1]; + @Pc(46) int[] local46 = local17[0]; + for (@Pc(48) int local48 = 0; local48 < Texture.width; local48++) { + @Pc(61) int local61 = local28[local48] * 255 >> 12 & 0xFF; + @Pc(70) int local70 = local34[local48] * this.anInt3292 >> 12; + @Pc(78) int local78 = local70 * TextureOp.COSINE[local61] >> 12; + @Pc(86) int local86 = TextureOp.SINE[local61] * local70 >> 12; + @Pc(94) int local94 = (local78 >> 12) + local48 & Texture.widthMask; + @Pc(103) int local103 = Texture.heightMask & arg0 + (local86 >> 12); + @Pc(109) int[][] local109 = this.getChildColorOutput(local103, 0); + local46[local48] = local109[0][local94]; + local42[local48] = local109[1][local94]; + local38[local48] = local109[2][local94]; + } } + return local17; } - @OriginalMember(owner = "client!mh", name = "a", descriptor = "(IB)[I") + @OriginalMember(owner = "client!ke", name = "a", descriptor = "(IB)[I") @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(19) int[] local19 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(30) int local30 = Static10.anIntArray153[arg0] - 2048; - for (@Pc(32) int local32 = 0; local32 < Static10.anInt4457; local32++) { - @Pc(40) int local40 = local30 + this.anInt3843; - @Pc(46) int local46 = Static173.anIntArray367[local32] - 2048; - @Pc(51) int local51 = this.anInt3860 + local46; - @Pc(62) int local62 = local40 < -2048 ? local40 + 4096 : local40; - @Pc(71) int local71 = local62 > 2048 ? local62 - 4096 : local62; - @Pc(76) int local76 = local46 + this.anInt3848; - @Pc(85) int local85 = local51 < -2048 ? local51 + 4096 : local51; - @Pc(96) int local96 = local85 <= 2048 ? local85 : local85 - 4096; - @Pc(107) int local107 = local76 >= -2048 ? local76 : local76 + 4096; - @Pc(118) int local118 = local107 > 2048 ? local107 - 4096 : local107; - @Pc(124) int local124 = local30 + this.anInt3854; - @Pc(133) int local133 = local124 < -2048 ? local124 + 4096 : local124; - @Pc(144) int local144 = local133 > 2048 ? local133 - 4096 : local133; - local19[local32] = this.method3012(local96, local71) || this.method3011(local118, local144) ? 4096 : 0; + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(19) int[] local19 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(29) int[] local29 = this.getChildMonochromeOutput(1, arg0); + @Pc(35) int[] local35 = this.getChildMonochromeOutput(2, arg0); + for (@Pc(37) int local37 = 0; local37 < Texture.width; local37++) { + @Pc(49) int local49 = this.anInt3292 * local35[local37] >> 12; + @Pc(57) int local57 = local29[local37] >> 4 & 0xFF; + @Pc(65) int local65 = TextureOp.COSINE[local57] * local49 >> 12; + @Pc(73) int local73 = TextureOp.SINE[local57] * local49 >> 12; + @Pc(81) int local81 = Texture.widthMask & (local65 >> 12) + local37; + @Pc(89) int local89 = Texture.heightMask & (local73 >> 12) + arg0; + @Pc(95) int[] local95 = this.getChildMonochromeOutput(0, local89); + local19[local37] = local95[local81]; } } return local19; } - @OriginalMember(owner = "client!mh", name = "a", descriptor = "(BII)Z") - private boolean method3011(@OriginalArg(1) int arg0, @OriginalArg(2) int arg1) { - @Pc(12) int local12 = this.anInt3847 * (arg0 + arg1) >> 12; - @Pc(27) int local27 = Static9.anIntArray299[local12 * 255 >> 12 & 0xFF]; - @Pc(34) int local34 = (local27 << 12) / this.anInt3847; - @Pc(41) int local41 = (local34 << 12) / this.anInt3862; - @Pc(48) int local48 = local41 * this.anInt3844 >> 12; - return local48 > arg1 - arg0 && -local48 < arg1 - arg0; - } - - @OriginalMember(owner = "client!mh", name = "e", descriptor = "(I)V") + @OriginalMember(owner = "client!ke", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final void method4630() { - Static9.method185(); + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + if (arg0 == 0) { + this.anInt3292 = arg1.g2() << 4; + } else if (arg0 == 1) { + this.monochrome = arg1.g1() == 1; + } } - @OriginalMember(owner = "client!mh", name = "b", descriptor = "(IIB)Z") - private boolean method3012(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) { - @Pc(8) int local8 = (arg1 - arg0) * this.anInt3847 >> 12; - @Pc(31) int local31 = Static9.anIntArray299[local8 * 255 >> 12 & 0xFF]; - @Pc(38) int local38 = (local31 << 12) / this.anInt3847; - @Pc(45) int local45 = (local38 << 12) / this.anInt3862; - @Pc(52) int local52 = local45 * this.anInt3844 >> 12; - return arg1 + arg0 < local52 && -local52 < arg1 + arg0; + @OriginalMember(owner = "client!ke", name = "e", descriptor = "(I)V") + @Override + public final void postDecode() { + TextureOp.createTrigonometryTables(); } } diff --git a/client/src/main/java/rt4/TextureOp21.java b/client/src/main/java/rt4/TextureOp21.java deleted file mode 100644 index 1a77c1a..0000000 --- a/client/src/main/java/rt4/TextureOp21.java +++ /dev/null @@ -1,141 +0,0 @@ -package rt4; - -import org.openrs2.deob.annotation.OriginalArg; -import org.openrs2.deob.annotation.OriginalClass; -import org.openrs2.deob.annotation.OriginalMember; -import org.openrs2.deob.annotation.Pc; - -@OriginalClass("client!nm") -public final class TextureOp21 extends TextureOp { - - @OriginalMember(owner = "client!nm", name = "V", descriptor = "I") - private int anInt4221 = 1; - - @OriginalMember(owner = "client!nm", name = "Z", descriptor = "I") - private int anInt4223 = 1; - - @OriginalMember(owner = "client!nm", name = "", descriptor = "()V") - public TextureOp21() { - super(1, false); - } - - @OriginalMember(owner = "client!nm", name = "a", descriptor = "(IB)[I") - @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(19) int[] local19 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(31) int local31 = this.anInt4223 + this.anInt4223 + 1; - @Pc(35) int local35 = 65536 / local31; - @Pc(43) int local43 = this.anInt4221 + this.anInt4221 + 1; - @Pc(47) int local47 = 65536 / local43; - @Pc(50) int[][] local50 = new int[local31][]; - @Pc(56) int local56; - for (local56 = arg0 - this.anInt4223; local56 <= arg0 + this.anInt4223; local56++) { - @Pc(75) int[] local75 = this.method4624(0, local56 & Static10.anInt3473); - @Pc(78) int[] local78 = new int[Static10.anInt4457]; - @Pc(80) int local80 = 0; - @Pc(84) int local84; - for (local84 = -this.anInt4221; local84 <= this.anInt4221; local84++) { - local80 += local75[local84 & Static34.anInt1060]; - } - local84 = 0; - while (Static10.anInt4457 > local84) { - local78[local84] = local47 * local80 >> 16; - local80 -= local75[Static34.anInt1060 & local84 - this.anInt4221]; - local84++; - local80 += local75[Static34.anInt1060 & this.anInt4221 + local84]; - } - local50[this.anInt4223 + local56 - arg0] = local78; - } - for (local56 = 0; local56 < Static10.anInt4457; local56++) { - @Pc(169) int local169 = 0; - for (@Pc(171) int local171 = 0; local171 < local31; local171++) { - local169 += local50[local171][local56]; - } - local19[local56] = local35 * local169 >> 16; - } - } - return local19; - } - - @OriginalMember(owner = "client!nm", name = "b", descriptor = "(II)[[I") - @Override - public final int[][] method4638(@OriginalArg(1) int arg0) { - @Pc(13) int[][] local13 = this.aClass103_41.method3173(arg0); - if (this.aClass103_41.aBoolean195) { - @Pc(30) int local30 = this.anInt4221 + this.anInt4221 + 1; - @Pc(34) int local34 = 65536 / local30; - @Pc(42) int local42 = this.anInt4223 + this.anInt4223 + 1; - @Pc(46) int local46 = 65536 / local42; - @Pc(49) int[][][] local49 = new int[local42][][]; - @Pc(70) int local70; - @Pc(72) int local72; - @Pc(78) int local78; - for (@Pc(54) int local54 = arg0 - this.anInt4223; local54 <= this.anInt4223 + arg0; local54++) { - @Pc(68) int[][] local68 = this.method4634(Static10.anInt3473 & local54, 0); - local70 = 0; - local72 = 0; - @Pc(76) int[][] local76 = new int[3][Static10.anInt4457]; - local78 = 0; - @Pc(82) int[] local82 = local68[0]; - @Pc(86) int[] local86 = local68[1]; - @Pc(90) int[] local90 = local68[2]; - for (@Pc(94) int local94 = -this.anInt4221; local94 <= this.anInt4221; local94++) { - @Pc(102) int local102 = local94 & Static34.anInt1060; - local72 += local86[local102]; - local70 += local82[local102]; - local78 += local90[local102]; - } - @Pc(127) int[] local127 = local76[2]; - @Pc(131) int[] local131 = local76[0]; - @Pc(135) int[] local135 = local76[1]; - @Pc(137) int local137 = 0; - while (Static10.anInt4457 > local137) { - local131[local137] = local70 * local34 >> 16; - local135[local137] = local72 * local34 >> 16; - local127[local137] = local34 * local78 >> 16; - @Pc(172) int local172 = Static34.anInt1060 & local137 - this.anInt4221; - local78 -= local90[local172]; - local137++; - local70 -= local82[local172]; - local72 -= local86[local172]; - @Pc(198) int local198 = this.anInt4221 + local137 & Static34.anInt1060; - local78 += local90[local198]; - local72 += local86[local198]; - local70 += local82[local198]; - } - local49[this.anInt4223 + local54 - arg0] = local76; - } - @Pc(235) int[] local235 = local13[0]; - @Pc(239) int[] local239 = local13[1]; - @Pc(243) int[] local243 = local13[2]; - for (local70 = 0; local70 < Static10.anInt4457; local70++) { - local78 = 0; - local72 = 0; - @Pc(258) int local258 = 0; - for (@Pc(260) int local260 = 0; local260 < local42; local260++) { - @Pc(271) int[][] local271 = local49[local260]; - local258 += local271[2][local70]; - local78 += local271[1][local70]; - local72 += local271[0][local70]; - } - local235[local70] = local46 * local72 >> 16; - local239[local70] = local46 * local78 >> 16; - local243[local70] = local258 * local46 >> 16; - } - } - return local13; - } - - @OriginalMember(owner = "client!nm", name = "a", descriptor = "(ILclient!wa;Z)V") - @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { - if (arg0 == 0) { - this.anInt4221 = arg1.g1(); - } else if (arg0 == 1) { - this.anInt4223 = arg1.g1(); - } else if (arg0 == 2) { - this.aBoolean309 = arg1.g1() == 1; - } - } -} diff --git a/client/src/main/java/rt4/TextureOp22.java b/client/src/main/java/rt4/TextureOp22.java deleted file mode 100644 index d4fd74b..0000000 --- a/client/src/main/java/rt4/TextureOp22.java +++ /dev/null @@ -1,330 +0,0 @@ -package rt4; - -import java.util.Random; -import org.openrs2.deob.annotation.OriginalArg; -import org.openrs2.deob.annotation.OriginalClass; -import org.openrs2.deob.annotation.OriginalMember; -import org.openrs2.deob.annotation.Pc; - -@OriginalClass("client!ol") -public final class TextureOp22 extends TextureOp { - - @OriginalMember(owner = "client!ol", name = "gb", descriptor = "I") - private int anInt4356; - - @OriginalMember(owner = "client!ol", name = "R", descriptor = "I") - private int anInt4346 = 819; - - @OriginalMember(owner = "client!ol", name = "ab", descriptor = "I") - private int anInt4351 = 0; - - @OriginalMember(owner = "client!ol", name = "Z", descriptor = "I") - private int anInt4350 = 2048; - - @OriginalMember(owner = "client!ol", name = "T", descriptor = "I") - private int anInt4347 = 1024; - - @OriginalMember(owner = "client!ol", name = "Q", descriptor = "I") - private int anInt4345 = 1024; - - @OriginalMember(owner = "client!ol", name = "cb", descriptor = "I") - private int anInt4353 = 409; - - @OriginalMember(owner = "client!ol", name = "kb", descriptor = "I") - private int anInt4360 = 1024; - - @OriginalMember(owner = "client!ol", name = "P", descriptor = "I") - private int anInt4344 = 1024; - - @OriginalMember(owner = "client!ol", name = "eb", descriptor = "I") - private int anInt4354 = 0; - - @OriginalMember(owner = "client!ol", name = "", descriptor = "()V") - public TextureOp22() { - super(0, true); - } - - @OriginalMember(owner = "client!ol", name = "e", descriptor = "(I)V") - @Override - public final void method4630() { - } - - @OriginalMember(owner = "client!ol", name = "a", descriptor = "(IB)[I") - @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(19) int[] local19 = this.aClass121_41.method3445(arg0); - if (!this.aClass121_41.invalid) { - return local19; - } - @Pc(29) int[][] local29 = this.aClass121_41.method3446(); - @Pc(31) int local31 = 0; - @Pc(33) int local33 = 0; - @Pc(35) int local35 = 0; - @Pc(37) int local37 = 0; - @Pc(39) int local39 = 0; - @Pc(41) boolean local41 = true; - @Pc(43) boolean local43 = true; - @Pc(45) int local45 = 0; - @Pc(47) int local47 = 0; - @Pc(54) int local54 = Static10.anInt4457 * this.anInt4345 >> 12; - @Pc(61) int local61 = Static10.anInt4457 * this.anInt4350 >> 12; - @Pc(68) int local68 = this.anInt4346 * Static10.anInt4165 >> 12; - @Pc(75) int local75 = Static10.anInt4165 * this.anInt4353 >> 12; - if (local68 <= 1) { - return local29[arg0]; - } - @Pc(88) int local88 = Static10.anInt4457 / local54 + 1; - this.anInt4356 = Static10.anInt4457 / 8 * this.anInt4347 >> 12; - @Pc(102) int[][] local102 = new int[local88][3]; - @Pc(106) int[][] local106 = new int[local88][3]; - @Pc(113) Random local113 = new Random((long) this.anInt4354); - while (true) { - while (true) { - @Pc(123) int local123 = local54 + Static171.method3219(local61 - local54, local113); - @Pc(133) int local133 = Static171.method3219(local68 - local75, local113) + local75; - @Pc(137) int local137 = local31 + local123; - if (Static10.anInt4457 < local137) { - local137 = Static10.anInt4457; - local123 = Static10.anInt4457 - local31; - } - @Pc(158) int local158; - @Pc(160) int local160; - if (local43) { - local158 = 0; - } else { - @Pc(150) int local150 = local39; - @Pc(154) int[] local154 = local102[local39]; - local158 = local154[2]; - local160 = 0; - @Pc(164) int local164 = local35 + local137; - if (local164 < 0) { - local164 += Static10.anInt4457; - } - if (Static10.anInt4457 < local164) { - local164 -= Static10.anInt4457; - } - while (true) { - @Pc(186) int[] local186 = local102[local150]; - if (local164 >= local186[0] && local186[1] >= local164) { - if (local39 != local150) { - @Pc(224) int local224 = local35 + local31; - if (local224 < 0) { - local224 += Static10.anInt4457; - } - if (local224 > Static10.anInt4457) { - local224 -= Static10.anInt4457; - } - @Pc(243) int local243; - @Pc(258) int[] local258; - for (local243 = 1; local243 <= local160; local243++) { - local258 = local102[(local39 + local243) % local45]; - local158 = Math.max(local158, local258[2]); - } - for (local243 = 0; local243 <= local160; local243++) { - local258 = local102[(local39 + local243) % local45]; - @Pc(285) int local285 = local258[2]; - if (local285 != local158) { - @Pc(297) int local297 = local258[0]; - @Pc(301) int local301 = local258[1]; - @Pc(312) int local312; - @Pc(316) int local316; - if (local164 > local224) { - local312 = Math.max(local224, local297); - local316 = Math.min(local164, local301); - } else if (local297 == 0) { - local316 = Math.min(local164, local301); - local312 = 0; - } else { - local312 = Math.max(local224, local297); - local316 = Static10.anInt4457; - } - this.method3386(local285, local113, local33 + local312, -local312 + local316, local158 - local285, local29); - } - } - } - local39 = local150; - break; - } - local160++; - local150++; - if (local150 >= local45) { - local150 = 0; - } - } - } - if (Static10.anInt4165 >= local158 + local133) { - local41 = false; - } else { - local133 = Static10.anInt4165 - local158; - } - @Pc(407) int[] local407; - if (local137 == Static10.anInt4457) { - this.method3386(local158, local113, local37 + local31, local123, local133, local29); - if (local41) { - return local19; - } - local41 = true; - local33 = local37; - local43 = false; - local407 = local106[local47++]; - local407[0] = local31; - local39 = 0; - local45 = local47; - local47 = 0; - local407[2] = local133 + local158; - local407[1] = local137; - local37 = Static171.method3219(Static10.anInt4457, local113); - local35 = local37 - local33; - @Pc(439) int[][] local439 = local102; - local31 = 0; - local102 = local106; - local160 = local35; - if (local35 < 0) { - local160 = local35 + Static10.anInt4457; - } - local106 = local439; - if (Static10.anInt4457 < local160) { - local160 -= Static10.anInt4457; - } - while (true) { - @Pc(469) int[] local469 = local102[local39]; - if (local469[0] <= local160 && local469[1] >= local160) { - break; - } - local39++; - if (local45 <= local39) { - local39 = 0; - } - } - } else { - local407 = local106[local47++]; - local407[1] = local137; - local407[2] = local133 + local158; - local407[0] = local31; - this.method3386(local158, local113, local31 + local37, local123, local133, local29); - local31 = local137; - } - } - } - } - - @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) { - @Pc(26) int local26 = this.anInt4360 > 0 ? 4096 - Static171.method3219(this.anInt4360, arg1) : 4096; - @Pc(34) int local34 = this.anInt4344 * this.anInt4356 >> 12; - @Pc(47) int local47 = this.anInt4356 - (local34 > 0 ? Static171.method3219(local34, arg1) : 0); - if (Static10.anInt4457 <= arg2) { - arg2 -= Static10.anInt4457; - } - @Pc(68) int local68; - @Pc(72) int local72; - if (local47 > 0) { - if (arg4 <= 0 || arg3 <= 0) { - return; - } - local68 = arg3 / 2; - local72 = arg4 / 2; - @Pc(79) int local79 = local68 < local47 ? local68 : local47; - @Pc(90) int local90 = local72 >= local47 ? local47 : local72; - @Pc(97) int local97 = arg3 - local79 * 2; - @Pc(101) int local101 = local79 + arg2; - for (@Pc(103) int local103 = 0; local103 < arg4; local103++) { - @Pc(112) int[] local112 = arg5[arg0 + local103]; - @Pc(125) int local125; - @Pc(133) int local133; - @Pc(142) int local142; - if (local103 < local90) { - local125 = local103 * local26 / local90; - if (this.anInt4351 == 0) { - for (local133 = 0; local133 < local79; local133++) { - local142 = local133 * local26 / local79; - local112[Static34.anInt1060 & local133 + arg2] = local112[arg3 + arg2 - local133 - 1 & Static34.anInt1060] = local142 * local125 >> 12; - } - } else { - for (local133 = 0; local133 < local79; local133++) { - local142 = local133 * local26 / local79; - local112[Static34.anInt1060 & arg2 + local133] = local112[Static34.anInt1060 & arg3 + arg2 - local133 - 1] = local125 <= local142 ? local125 : local142; - } - } - if (Static10.anInt4457 >= local97 + local101) { - ArrayUtils.fill(local112, local101, local97, local125); - } else { - local133 = Static10.anInt4457 - local101; - ArrayUtils.fill(local112, local101, local133, local125); - ArrayUtils.fill(local112, 0, local97 - local133, local125); - } - } else { - local125 = arg4 - local103 - 1; - if (local125 >= local90) { - for (local133 = 0; local133 < local79; local133++) { - local112[Static34.anInt1060 & arg2 + local133] = local112[arg2 + arg3 - local133 - 1 & Static34.anInt1060] = local26 * local133 / local79; - } - if (local101 + local97 > Static10.anInt4457) { - local133 = Static10.anInt4457 - local101; - ArrayUtils.fill(local112, local101, local133, local26); - ArrayUtils.fill(local112, 0, local97 - local133, local26); - } else { - ArrayUtils.fill(local112, local101, local97, local26); - } - } else { - local133 = local125 * local26 / local90; - @Pc(288) int local288; - if (this.anInt4351 == 0) { - for (local142 = 0; local142 < local79; local142++) { - local288 = local26 * local142 / local79; - local112[Static34.anInt1060 & arg2 + local142] = local112[Static34.anInt1060 & arg2 + arg3 - local142 - 1] = local288 * local133 >> 12; - } - } else { - for (local142 = 0; local142 < local79; local142++) { - local288 = local142 * local26 / local79; - local112[arg2 + local142 & Static34.anInt1060] = local112[arg3 + arg2 - local142 - 1 & Static34.anInt1060] = local133 <= local288 ? local133 : local288; - } - } - if (local97 + local101 > Static10.anInt4457) { - local142 = Static10.anInt4457 - local101; - ArrayUtils.fill(local112, local101, local142, local133); - ArrayUtils.fill(local112, 0, local97 - local142, local133); - } else { - ArrayUtils.fill(local112, local101, local97, local133); - } - } - } - } - } else if (Static10.anInt4457 >= arg2 + arg3) { - for (local68 = 0; local68 < arg4; local68++) { - ArrayUtils.fill(arg5[arg0 + local68], arg2, arg3, local26); - } - } else { - local68 = Static10.anInt4457 - arg2; - for (local72 = 0; local72 < arg4; local72++) { - @Pc(522) int[] local522 = arg5[local72 + arg0]; - ArrayUtils.fill(local522, arg2, local68, local26); - ArrayUtils.fill(local522, 0, arg3 - local68, local26); - } - } - } - - @OriginalMember(owner = "client!ol", name = "a", descriptor = "(ILclient!wa;Z)V") - @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { - if (arg0 == 0) { - this.anInt4354 = arg1.g1(); - } else if (arg0 == 1) { - this.anInt4345 = arg1.g2(); - } else if (arg0 == 2) { - this.anInt4350 = arg1.g2(); - } else if (arg0 == 3) { - this.anInt4353 = arg1.g2(); - } else if (arg0 == 4) { - this.anInt4346 = arg1.g2(); - } else if (arg0 == 5) { - this.anInt4347 = arg1.g2(); - } else if (arg0 == 6) { - this.anInt4351 = arg1.g1(); - } else if (arg0 == 7) { - this.anInt4344 = arg1.g2(); - } else if (arg0 == 8) { - this.anInt4360 = arg1.g2(); - } - } -} diff --git a/client/src/main/java/rt4/TextureOp23.java b/client/src/main/java/rt4/TextureOp23.java index f3941fb..a41daaa 100644 --- a/client/src/main/java/rt4/TextureOp23.java +++ b/client/src/main/java/rt4/TextureOp23.java @@ -5,45 +5,89 @@ import org.openrs2.deob.annotation.OriginalClass; import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; -@OriginalClass("client!pg") +@OriginalClass("client!je") public final class TextureOp23 extends TextureOp { - @OriginalMember(owner = "client!pg", name = "U", descriptor = "I") - private int anInt4503 = 4096; + @OriginalMember(owner = "client!hd", name = "i", descriptor = "I") + public static int anInt2433 = 0; - @OriginalMember(owner = "client!pg", name = "", descriptor = "()V") + @OriginalMember(owner = "client!je", name = "", descriptor = "()V") public TextureOp23() { - super(1, true); + super(1, false); } - @OriginalMember(owner = "client!pg", name = "a", descriptor = "(IB)[I") + @OriginalMember(owner = "client!je", name = "a", descriptor = "(IBI)V") + private void method2382(@OriginalArg(0) int arg0, @OriginalArg(2) int arg1) { + @Pc(13) int local13 = Texture.widthFractions[arg1]; + @Pc(17) int local17 = Texture.heightFractions[arg0]; + @Pc(28) float local28 = (float) Math.atan2((double) (local13 - 2048), (double) (local17 - 2048)); + if ((double) local28 >= -3.141592653589793D && -2.356194490192345D >= (double) local28) { + anInt2433 = arg0; + Static267.anInt5776 = arg1; + } else if ((double) local28 <= -1.5707963267948966D && -2.356194490192345D <= (double) local28) { + Static267.anInt5776 = arg0; + anInt2433 = arg1; + } else if ((double) local28 <= -0.7853981633974483D && (double) local28 >= -1.5707963267948966D) { + Static267.anInt5776 = Texture.width - arg0; + anInt2433 = arg1; + } else if (local28 <= 0.0F && (double) local28 >= -0.7853981633974483D) { + Static267.anInt5776 = arg1; + anInt2433 = Texture.height - arg0; + } else if (local28 >= 0.0F && (double) local28 <= 0.7853981633974483D) { + Static267.anInt5776 = Texture.width - arg1; + anInt2433 = Texture.height - arg0; + } else if ((double) local28 >= 0.7853981633974483D && (double) local28 <= 1.5707963267948966D) { + Static267.anInt5776 = Texture.width - arg0; + anInt2433 = Texture.height - arg1; + } else if ((double) local28 >= 1.5707963267948966D && (double) local28 <= 2.356194490192345D) { + anInt2433 = Texture.height - arg1; + Static267.anInt5776 = arg0; + } else if ((double) local28 >= 2.356194490192345D && (double) local28 <= 3.141592653589793D) { + Static267.anInt5776 = Texture.width - arg1; + anInt2433 = arg0; + } + Static267.anInt5776 &= Texture.widthMask; + anInt2433 &= Texture.heightMask; + } + + @OriginalMember(owner = "client!je", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(19) int[] local19 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(34) int[] local34 = this.method4624(0, arg0 - 1 & Static10.anInt3473); - @Pc(40) int[] local40 = this.method4624(0, arg0); - @Pc(50) int[] local50 = this.method4624(0, Static10.anInt3473 & arg0 + 1); - for (@Pc(52) int local52 = 0; local52 < Static10.anInt4457; local52++) { - @Pc(67) int local67 = (local50[local52] - local34[local52]) * this.anInt4503; - @Pc(87) int local87 = this.anInt4503 * (local40[Static34.anInt1060 & local52 + 1] - local40[local52 - 1 & Static34.anInt1060]); - @Pc(91) int local91 = local87 >> 12; - @Pc(95) int local95 = local67 >> 12; - @Pc(101) int local101 = local91 * local91 >> 12; - @Pc(107) int local107 = local95 * local95 >> 12; - @Pc(121) int local121 = (int) (Math.sqrt((double) ((float) (local107 + local101 + 4096) / 4096.0F)) * 4096.0D); - @Pc(130) int local130 = local121 == 0 ? 0 : 16777216 / local121; - local19[local52] = 4096 - local130; + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + if (arg0 == 0) { + this.monochrome = arg1.g1() == 1; + } + } + + @OriginalMember(owner = "client!je", name = "a", descriptor = "(IB)[I") + @Override + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(19) int[] local19 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + for (@Pc(26) int local26 = 0; local26 < Texture.width; local26++) { + this.method2382(arg0, local26); + @Pc(40) int[] local40 = this.getChildMonochromeOutput(0, anInt2433); + local19[local26] = local40[Static267.anInt5776]; } } return local19; } - @OriginalMember(owner = "client!pg", name = "a", descriptor = "(ILclient!wa;Z)V") + @OriginalMember(owner = "client!je", name = "b", descriptor = "(II)[[I") @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { - if (arg0 == 0) { - this.anInt4503 = arg1.g2(); + public final int[][] getColorOutput(@OriginalArg(1) int arg0) { + @Pc(15) int[][] local15 = this.colorImageCache.get(arg0); + if (this.colorImageCache.invalid) { + @Pc(28) int[] local28 = local15[0]; + @Pc(32) int[] local32 = local15[2]; + @Pc(36) int[] local36 = local15[1]; + for (@Pc(38) int local38 = 0; local38 < Texture.width; local38++) { + this.method2382(arg0, local38); + @Pc(52) int[][] local52 = this.getChildColorOutput(anInt2433, 0); + local28[local38] = local52[0][Static267.anInt5776]; + local36[local38] = local52[1][Static267.anInt5776]; + local32[local38] = local52[2][Static267.anInt5776]; + } } + return local15; } } diff --git a/client/src/main/java/rt4/TextureOp24.java b/client/src/main/java/rt4/TextureOp24.java deleted file mode 100644 index eb4b9aa..0000000 --- a/client/src/main/java/rt4/TextureOp24.java +++ /dev/null @@ -1,101 +0,0 @@ -package rt4; - -import org.openrs2.deob.annotation.OriginalArg; -import org.openrs2.deob.annotation.OriginalClass; -import org.openrs2.deob.annotation.OriginalMember; -import org.openrs2.deob.annotation.Pc; - -@OriginalClass("client!pk") -public final class TextureOp24 extends TextureOp { - - @OriginalMember(owner = "client!pk", name = "U", descriptor = "[I") - private final int[] anIntArray406 = new int[3]; - - @OriginalMember(owner = "client!pk", name = "S", descriptor = "I") - private int anInt4577 = 3216; - - @OriginalMember(owner = "client!pk", name = "X", descriptor = "I") - private int anInt4580 = 4096; - - @OriginalMember(owner = "client!pk", name = "db", descriptor = "I") - private int anInt4584 = 3216; - - @OriginalMember(owner = "client!pk", name = "", descriptor = "()V") - public TextureOp24() { - super(1, true); - } - - @OriginalMember(owner = "client!pk", name = "a", descriptor = "(ILclient!wa;Z)V") - @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { - if (arg0 == 0) { - this.anInt4580 = arg1.g2(); - } else if (arg0 == 1) { - this.anInt4577 = arg1.g2(); - } else if (arg0 == 2) { - this.anInt4584 = arg1.g2(); - } - } - - @OriginalMember(owner = "client!pk", name = "e", descriptor = "(I)V") - @Override - public final void method4630() { - this.method3533(); - } - - @OriginalMember(owner = "client!pk", name = "a", descriptor = "(IB)[I") - @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(19) int[] local19 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(30) int local30 = Static165.anInt4042 * this.anInt4580 >> 12; - @Pc(40) int[] local40 = this.method4624(0, Static10.anInt3473 & arg0 - 1); - @Pc(46) int[] local46 = this.method4624(0, arg0); - @Pc(56) int[] local56 = this.method4624(0, arg0 + 1 & Static10.anInt3473); - for (@Pc(58) int local58 = 0; local58 < Static10.anInt4457; local58++) { - @Pc(81) int local81 = (local46[Static34.anInt1060 & local58 - 1] - local46[local58 + 1 & Static34.anInt1060]) * local30 >> 12; - @Pc(94) int local94 = local30 * (local56[local58] - local40[local58]) >> 12; - @Pc(98) int local98 = local81 >> 4; - if (local98 < 0) { - local98 = -local98; - } - if (local98 > 255) { - local98 = 255; - } - @Pc(113) int local113 = local94 >> 4; - if (local113 < 0) { - local113 = -local113; - } - if (local113 > 255) { - local113 = 255; - } - @Pc(142) int local142 = MonochromeImageCache.aByteArray53[(local113 * (local113 + 1) >> 1) + local98] & 0xFF; - @Pc(148) int local148 = local94 * local142 >> 8; - @Pc(154) int local154 = local142 * local81 >> 8; - @Pc(163) int local163 = local148 * this.anIntArray406[1] >> 12; - @Pc(172) int local172 = this.anIntArray406[0] * local154 >> 12; - @Pc(178) int local178 = local142 * 4096 >> 8; - @Pc(187) int local187 = local178 * this.anIntArray406[2] >> 12; - local19[local58] = local187 + local163 + local172; - } - } - return local19; - } - - @OriginalMember(owner = "client!pk", name = "g", descriptor = "(B)V") - private void method3533() { - @Pc(7) double local7 = Math.cos((double) ((float) this.anInt4584 / 4096.0F)); - this.anIntArray406[0] = (int) (local7 * 4096.0D * Math.sin((double) ((float) this.anInt4577 / 4096.0F))); - this.anIntArray406[1] = (int) (Math.cos((double) ((float) this.anInt4577 / 4096.0F)) * local7 * 4096.0D); - this.anIntArray406[2] = (int) (Math.sin((double) ((float) this.anInt4584 / 4096.0F)) * 4096.0D); - @Pc(73) int local73 = this.anIntArray406[2] * this.anIntArray406[2] >> 12; - @Pc(85) int local85 = this.anIntArray406[1] * this.anIntArray406[1] >> 12; - @Pc(97) int local97 = this.anIntArray406[0] * this.anIntArray406[0] >> 12; - @Pc(111) int local111 = (int) (Math.sqrt((double) (local97 + local85 + local73 >> 12)) * 4096.0D); - if (local111 != 0) { - this.anIntArray406[2] = (this.anIntArray406[2] << 12) / local111; - this.anIntArray406[0] = (this.anIntArray406[0] << 12) / local111; - this.anIntArray406[1] = (this.anIntArray406[1] << 12) / local111; - } - } -} diff --git a/client/src/main/java/rt4/TextureOp25.java b/client/src/main/java/rt4/TextureOp25.java index ec60702..8f5ffe3 100644 --- a/client/src/main/java/rt4/TextureOp25.java +++ b/client/src/main/java/rt4/TextureOp25.java @@ -5,21 +5,99 @@ import org.openrs2.deob.annotation.OriginalClass; import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; -@OriginalClass("client!qg") +@OriginalClass("client!sk") public final class TextureOp25 extends TextureOp { - @OriginalMember(owner = "client!qg", name = "", descriptor = "()V") + @OriginalMember(owner = "client!sk", name = "Y", descriptor = "I") + private int anInt5197 = 4096; + + @OriginalMember(owner = "client!sk", name = "X", descriptor = "I") + private int anInt5196 = 4096; + + @OriginalMember(owner = "client!sk", name = "fb", descriptor = "I") + private int anInt5201 = 4096; + + @OriginalMember(owner = "client!sk", name = "W", descriptor = "I") + private int anInt5195 = 409; + + @OriginalMember(owner = "client!sk", name = "V", descriptor = "[I") + private final int[] anIntArray450 = new int[3]; + + @OriginalMember(owner = "client!sk", name = "", descriptor = "()V") public TextureOp25() { - super(0, true); + super(1, false); } - @OriginalMember(owner = "client!qg", name = "a", descriptor = "(IB)[I") + @OriginalMember(owner = "client!sk", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(9) int[] local9 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - ArrayUtils.fill(local9, 0, Static10.anInt4457, Static10.anIntArray153[arg0]); + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + if (arg0 == 0) { + this.anInt5195 = arg1.g2(); + } else if (arg0 == 1) { + this.anInt5196 = arg1.g2(); + } else if (arg0 == 2) { + this.anInt5197 = arg1.g2(); + } else if (arg0 == 3) { + this.anInt5201 = arg1.g2(); + } else if (arg0 == 4) { + @Pc(65) int local65 = arg1.g3(); + this.anIntArray450[2] = local65 >> 12 & 0x0; + this.anIntArray450[1] = local65 >> 4 & 0xFF0; + this.anIntArray450[0] = (local65 & 0xFF0000) << 4; } - return local9; + } + + @OriginalMember(owner = "client!sk", name = "b", descriptor = "(II)[[I") + @Override + public final int[][] getColorOutput(@OriginalArg(1) int arg0) { + @Pc(15) int[][] local15 = this.colorImageCache.get(arg0); + if (this.colorImageCache.invalid) { + @Pc(25) int[][] local25 = this.getChildColorOutput(arg0, 0); + @Pc(29) int[] local29 = local25[0]; + @Pc(33) int[] local33 = local25[1]; + @Pc(37) int[] local37 = local25[2]; + @Pc(41) int[] local41 = local15[0]; + @Pc(45) int[] local45 = local15[1]; + @Pc(49) int[] local49 = local15[2]; + for (@Pc(51) int local51 = 0; local51 < Texture.width; local51++) { + @Pc(58) int local58 = local29[local51]; + @Pc(66) int local66 = local58 - this.anIntArray450[0]; + if (local66 < 0) { + local66 = -local66; + } + if (this.anInt5195 < local66) { + local41[local51] = local58; + local45[local51] = local33[local51]; + local49[local51] = local37[local51]; + } else { + @Pc(100) int local100 = local33[local51]; + local66 = local100 - this.anIntArray450[1]; + if (local66 < 0) { + local66 = -local66; + } + if (local66 > this.anInt5195) { + local41[local51] = local58; + local45[local51] = local100; + local49[local51] = local37[local51]; + } else { + @Pc(141) int local141 = local37[local51]; + local66 = local141 - this.anIntArray450[2]; + if (local66 < 0) { + local66 = -local66; + } + if (local66 <= this.anInt5195) { + local41[local51] = this.anInt5201 * local58 >> 12; + local45[local51] = this.anInt5197 * local100 >> 12; + local49[local51] = this.anInt5196 * local141 >> 12; + } else { + local41[local51] = local58; + local45[local51] = local100; + local49[local51] = local141; + } + } + } + } + } + return local15; } } diff --git a/client/src/main/java/rt4/TextureOp27.java b/client/src/main/java/rt4/TextureOp27.java index 5519e8d..64d7b2e 100644 --- a/client/src/main/java/rt4/TextureOp27.java +++ b/client/src/main/java/rt4/TextureOp27.java @@ -3,18 +3,108 @@ package rt4; import org.openrs2.deob.annotation.OriginalArg; import org.openrs2.deob.annotation.OriginalClass; import org.openrs2.deob.annotation.OriginalMember; +import org.openrs2.deob.annotation.Pc; -@OriginalClass("client!rl") +@OriginalClass("client!d") public final class TextureOp27 extends TextureOp { - @OriginalMember(owner = "client!rl", name = "", descriptor = "()V") + @OriginalMember(owner = "client!d", name = "U", descriptor = "[I") + private int[] anIntArray86; + + @OriginalMember(owner = "client!d", name = "W", descriptor = "[I") + private int[] anIntArray87; + + @OriginalMember(owner = "client!d", name = "Q", descriptor = "I") + private int anInt1234 = 0; + + @OriginalMember(owner = "client!d", name = "P", descriptor = "I") + private int anInt1233 = 10; + + @OriginalMember(owner = "client!d", name = "bb", descriptor = "I") + private int anInt1240 = 2048; + + @OriginalMember(owner = "client!d", name = "", descriptor = "()V") public TextureOp27() { super(0, true); } - @OriginalMember(owner = "client!rl", name = "a", descriptor = "(IB)[I") + @OriginalMember(owner = "client!d", name = "e", descriptor = "(I)V") @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - return Static173.anIntArray367; + public final void postDecode() { + this.method991(); + } + + @OriginalMember(owner = "client!d", name = "h", descriptor = "(I)V") + private void method991() { + @Pc(7) int local7 = 0; + this.anIntArray87 = new int[this.anInt1233 + 1]; + @Pc(23) int local23 = 4096 / this.anInt1233; + this.anIntArray86 = new int[this.anInt1233 + 1]; + @Pc(37) int local37 = this.anInt1240 * local23 >> 12; + for (@Pc(39) int local39 = 0; local39 < this.anInt1233; local39++) { + this.anIntArray86[local39] = local7; + this.anIntArray87[local39] = local7 + local37; + local7 += local23; + } + this.anIntArray86[this.anInt1233] = 4096; + this.anIntArray87[this.anInt1233] = this.anIntArray87[0] + 4096; + } + + @OriginalMember(owner = "client!d", name = "a", descriptor = "(ILclient!wa;Z)V") + @Override + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + if (arg0 == 0) { + this.anInt1233 = arg1.g1(); + } else if (arg0 == 1) { + this.anInt1240 = arg1.g2(); + } else if (arg0 == 2) { + this.anInt1234 = arg1.g1(); + } + } + + @OriginalMember(owner = "client!d", name = "a", descriptor = "(IB)[I") + @Override + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(19) int[] local19 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(28) int local28 = Texture.heightFractions[arg0]; + @Pc(36) int local36; + if (this.anInt1234 == 0) { + @Pc(34) short local34 = 0; + for (local36 = 0; local36 < this.anInt1233; local36++) { + if (this.anIntArray86[local36] <= local28 && local28 < this.anIntArray86[local36 + 1]) { + if (local28 < this.anIntArray87[local36]) { + local34 = 4096; + } + break; + } + } + ArrayUtils.fill(local19, 0, Texture.width, local34); + } else { + for (@Pc(85) int local85 = 0; local85 < Texture.width; local85++) { + @Pc(96) int local96 = Texture.widthFractions[local85]; + local36 = 0; + @Pc(101) int local101 = this.anInt1234; + if (local101 == 1) { + local36 = local96; + } else if (local101 == 2) { + local36 = (local96 + local28 - 4096 >> 1) + 2048; + } else if (local101 == 3) { + local36 = (local96 - local28 >> 1) + 2048; + } + @Pc(143) short local143 = 0; + for (local101 = 0; local101 < this.anInt1233; local101++) { + if (this.anIntArray86[local101] <= local36 && local36 < this.anIntArray86[local101 + 1]) { + if (local36 < this.anIntArray87[local101]) { + local143 = 4096; + } + break; + } + } + local19[local85] = local143; + } + } + } + return local19; } } diff --git a/client/src/main/java/rt4/TextureOp28.java b/client/src/main/java/rt4/TextureOp28.java index 98723f0..f42c95f 100644 --- a/client/src/main/java/rt4/TextureOp28.java +++ b/client/src/main/java/rt4/TextureOp28.java @@ -1,67 +1,330 @@ package rt4; +import java.util.Random; import org.openrs2.deob.annotation.OriginalArg; import org.openrs2.deob.annotation.OriginalClass; import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; -@OriginalClass("client!sa") +@OriginalClass("client!ol") public final class TextureOp28 extends TextureOp { - @OriginalMember(owner = "client!sa", name = "T", descriptor = "I") - private int anInt4971 = 585; + @OriginalMember(owner = "client!ol", name = "gb", descriptor = "I") + private int anInt4356; - @OriginalMember(owner = "client!sa", name = "", descriptor = "()V") + @OriginalMember(owner = "client!ol", name = "R", descriptor = "I") + private int anInt4346 = 819; + + @OriginalMember(owner = "client!ol", name = "ab", descriptor = "I") + private int anInt4351 = 0; + + @OriginalMember(owner = "client!ol", name = "Z", descriptor = "I") + private int anInt4350 = 2048; + + @OriginalMember(owner = "client!ol", name = "T", descriptor = "I") + private int anInt4347 = 1024; + + @OriginalMember(owner = "client!ol", name = "Q", descriptor = "I") + private int anInt4345 = 1024; + + @OriginalMember(owner = "client!ol", name = "cb", descriptor = "I") + private int anInt4353 = 409; + + @OriginalMember(owner = "client!ol", name = "kb", descriptor = "I") + private int anInt4360 = 1024; + + @OriginalMember(owner = "client!ol", name = "P", descriptor = "I") + private int anInt4344 = 1024; + + @OriginalMember(owner = "client!ol", name = "eb", descriptor = "I") + private int anInt4354 = 0; + + @OriginalMember(owner = "client!ol", name = "", descriptor = "()V") public TextureOp28() { super(0, true); } - @OriginalMember(owner = "client!sa", name = "a", descriptor = "(IB)[I") + @OriginalMember(owner = "client!ol", name = "e", descriptor = "(I)V") @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(19) int[] local19 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(28) int local28 = Static10.anIntArray153[arg0]; - for (@Pc(30) int local30 = 0; local30 < Static10.anInt4457; local30++) { - @Pc(41) int local41 = Static173.anIntArray367[local30]; - @Pc(76) int local76; - if (local41 > this.anInt4971 && 4096 - this.anInt4971 > local41 && 2048 - this.anInt4971 < local28 && local28 < this.anInt4971 + 2048) { - local76 = 2048 - local41; - local76 = local76 < 0 ? -local76 : local76; - local76 <<= 0xC; - local76 /= 2048 - this.anInt4971; - local19[local30] = 4096 - local76; - } else if (local41 > 2048 - this.anInt4971 && local41 < this.anInt4971 + 2048) { - local76 = local28 - 2048; - local76 = local76 >= 0 ? local76 : -local76; - local76 -= this.anInt4971; - local76 <<= 0xC; - local19[local30] = local76 / (2048 - this.anInt4971); - } else if (local28 < this.anInt4971 || 4096 - this.anInt4971 < local28) { - local76 = local41 - 2048; - @Pc(188) int local188 = local76 < 0 ? -local76 : local76; - @Pc(193) int local193 = local188 - this.anInt4971; - @Pc(197) int local197 = local193 << 12; - local19[local30] = local197 / (2048 - this.anInt4971); - } else if (this.anInt4971 <= local41 && local41 <= 4096 - this.anInt4971) { - local19[local30] = 0; + public final void postDecode() { + } + + @OriginalMember(owner = "client!ol", name = "a", descriptor = "(IB)[I") + @Override + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(19) int[] local19 = this.monochromeImageCache.get(arg0); + if (!this.monochromeImageCache.invalid) { + return local19; + } + @Pc(29) int[][] local29 = this.monochromeImageCache.method3446(); + @Pc(31) int local31 = 0; + @Pc(33) int local33 = 0; + @Pc(35) int local35 = 0; + @Pc(37) int local37 = 0; + @Pc(39) int local39 = 0; + @Pc(41) boolean local41 = true; + @Pc(43) boolean local43 = true; + @Pc(45) int local45 = 0; + @Pc(47) int local47 = 0; + @Pc(54) int local54 = Texture.width * this.anInt4345 >> 12; + @Pc(61) int local61 = Texture.width * this.anInt4350 >> 12; + @Pc(68) int local68 = this.anInt4346 * Texture.height >> 12; + @Pc(75) int local75 = Texture.height * this.anInt4353 >> 12; + if (local68 <= 1) { + return local29[arg0]; + } + @Pc(88) int local88 = Texture.width / local54 + 1; + this.anInt4356 = Texture.width / 8 * this.anInt4347 >> 12; + @Pc(102) int[][] local102 = new int[local88][3]; + @Pc(106) int[][] local106 = new int[local88][3]; + @Pc(113) Random local113 = new Random((long) this.anInt4354); + while (true) { + while (true) { + @Pc(123) int local123 = local54 + Static171.method3219(local61 - local54, local113); + @Pc(133) int local133 = Static171.method3219(local68 - local75, local113) + local75; + @Pc(137) int local137 = local31 + local123; + if (Texture.width < local137) { + local137 = Texture.width; + local123 = Texture.width - local31; + } + @Pc(158) int local158; + @Pc(160) int local160; + if (local43) { + local158 = 0; } else { - local76 = 2048 - local28; - local76 = local76 < 0 ? -local76 : local76; - local76 <<= 0xC; - local76 /= 2048 - this.anInt4971; - local19[local30] = 4096 - local76; + @Pc(150) int local150 = local39; + @Pc(154) int[] local154 = local102[local39]; + local158 = local154[2]; + local160 = 0; + @Pc(164) int local164 = local35 + local137; + if (local164 < 0) { + local164 += Texture.width; + } + if (Texture.width < local164) { + local164 -= Texture.width; + } + while (true) { + @Pc(186) int[] local186 = local102[local150]; + if (local164 >= local186[0] && local186[1] >= local164) { + if (local39 != local150) { + @Pc(224) int local224 = local35 + local31; + if (local224 < 0) { + local224 += Texture.width; + } + if (local224 > Texture.width) { + local224 -= Texture.width; + } + @Pc(243) int local243; + @Pc(258) int[] local258; + for (local243 = 1; local243 <= local160; local243++) { + local258 = local102[(local39 + local243) % local45]; + local158 = Math.max(local158, local258[2]); + } + for (local243 = 0; local243 <= local160; local243++) { + local258 = local102[(local39 + local243) % local45]; + @Pc(285) int local285 = local258[2]; + if (local285 != local158) { + @Pc(297) int local297 = local258[0]; + @Pc(301) int local301 = local258[1]; + @Pc(312) int local312; + @Pc(316) int local316; + if (local164 > local224) { + local312 = Math.max(local224, local297); + local316 = Math.min(local164, local301); + } else if (local297 == 0) { + local316 = Math.min(local164, local301); + local312 = 0; + } else { + local312 = Math.max(local224, local297); + local316 = Texture.width; + } + this.method3386(local285, local113, local33 + local312, -local312 + local316, local158 - local285, local29); + } + } + } + local39 = local150; + break; + } + local160++; + local150++; + if (local150 >= local45) { + local150 = 0; + } + } + } + if (Texture.height >= local158 + local133) { + local41 = false; + } else { + local133 = Texture.height - local158; + } + @Pc(407) int[] local407; + if (local137 == Texture.width) { + this.method3386(local158, local113, local37 + local31, local123, local133, local29); + if (local41) { + return local19; + } + local41 = true; + local33 = local37; + local43 = false; + local407 = local106[local47++]; + local407[0] = local31; + local39 = 0; + local45 = local47; + local47 = 0; + local407[2] = local133 + local158; + local407[1] = local137; + local37 = Static171.method3219(Texture.width, local113); + local35 = local37 - local33; + @Pc(439) int[][] local439 = local102; + local31 = 0; + local102 = local106; + local160 = local35; + if (local35 < 0) { + local160 = local35 + Texture.width; + } + local106 = local439; + if (Texture.width < local160) { + local160 -= Texture.width; + } + while (true) { + @Pc(469) int[] local469 = local102[local39]; + if (local469[0] <= local160 && local469[1] >= local160) { + break; + } + local39++; + if (local45 <= local39) { + local39 = 0; + } + } + } else { + local407 = local106[local47++]; + local407[1] = local137; + local407[2] = local133 + local158; + local407[0] = local31; + this.method3386(local158, local113, local31 + local37, local123, local133, local29); + local31 = local137; } } } - return local19; } - @OriginalMember(owner = "client!sa", name = "a", descriptor = "(ILclient!wa;Z)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) { + @Pc(26) int local26 = this.anInt4360 > 0 ? 4096 - Static171.method3219(this.anInt4360, arg1) : 4096; + @Pc(34) int local34 = this.anInt4344 * this.anInt4356 >> 12; + @Pc(47) int local47 = this.anInt4356 - (local34 > 0 ? Static171.method3219(local34, arg1) : 0); + if (Texture.width <= arg2) { + arg2 -= Texture.width; + } + @Pc(68) int local68; + @Pc(72) int local72; + if (local47 > 0) { + if (arg4 <= 0 || arg3 <= 0) { + return; + } + local68 = arg3 / 2; + local72 = arg4 / 2; + @Pc(79) int local79 = local68 < local47 ? local68 : local47; + @Pc(90) int local90 = local72 >= local47 ? local47 : local72; + @Pc(97) int local97 = arg3 - local79 * 2; + @Pc(101) int local101 = local79 + arg2; + for (@Pc(103) int local103 = 0; local103 < arg4; local103++) { + @Pc(112) int[] local112 = arg5[arg0 + local103]; + @Pc(125) int local125; + @Pc(133) int local133; + @Pc(142) int local142; + if (local103 < local90) { + local125 = local103 * local26 / local90; + if (this.anInt4351 == 0) { + for (local133 = 0; local133 < local79; local133++) { + local142 = local133 * local26 / local79; + local112[Texture.widthMask & local133 + arg2] = local112[arg3 + arg2 - local133 - 1 & Texture.widthMask] = local142 * local125 >> 12; + } + } else { + for (local133 = 0; local133 < local79; local133++) { + local142 = local133 * local26 / local79; + local112[Texture.widthMask & arg2 + local133] = local112[Texture.widthMask & arg3 + arg2 - local133 - 1] = local125 <= local142 ? local125 : local142; + } + } + if (Texture.width >= local97 + local101) { + ArrayUtils.fill(local112, local101, local97, local125); + } else { + local133 = Texture.width - local101; + ArrayUtils.fill(local112, local101, local133, local125); + ArrayUtils.fill(local112, 0, local97 - local133, local125); + } + } else { + local125 = arg4 - local103 - 1; + if (local125 >= local90) { + for (local133 = 0; local133 < local79; local133++) { + local112[Texture.widthMask & arg2 + local133] = local112[arg2 + arg3 - local133 - 1 & Texture.widthMask] = local26 * local133 / local79; + } + if (local101 + local97 > Texture.width) { + local133 = Texture.width - local101; + ArrayUtils.fill(local112, local101, local133, local26); + ArrayUtils.fill(local112, 0, local97 - local133, local26); + } else { + ArrayUtils.fill(local112, local101, local97, local26); + } + } else { + local133 = local125 * local26 / local90; + @Pc(288) int local288; + if (this.anInt4351 == 0) { + for (local142 = 0; local142 < local79; local142++) { + local288 = local26 * local142 / local79; + local112[Texture.widthMask & arg2 + local142] = local112[Texture.widthMask & arg2 + arg3 - local142 - 1] = local288 * local133 >> 12; + } + } else { + for (local142 = 0; local142 < local79; local142++) { + local288 = local142 * local26 / local79; + local112[arg2 + local142 & Texture.widthMask] = local112[arg3 + arg2 - local142 - 1 & Texture.widthMask] = local133 <= local288 ? local133 : local288; + } + } + if (local97 + local101 > Texture.width) { + local142 = Texture.width - local101; + ArrayUtils.fill(local112, local101, local142, local133); + ArrayUtils.fill(local112, 0, local97 - local142, local133); + } else { + ArrayUtils.fill(local112, local101, local97, local133); + } + } + } + } + } else if (Texture.width >= arg2 + arg3) { + for (local68 = 0; local68 < arg4; local68++) { + ArrayUtils.fill(arg5[arg0 + local68], arg2, arg3, local26); + } + } else { + local68 = Texture.width - arg2; + for (local72 = 0; local72 < arg4; local72++) { + @Pc(522) int[] local522 = arg5[local72 + arg0]; + ArrayUtils.fill(local522, arg2, local68, local26); + ArrayUtils.fill(local522, 0, arg3 - local68, local26); + } + } + } + + @OriginalMember(owner = "client!ol", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { if (arg0 == 0) { - this.anInt4971 = arg1.g2(); + this.anInt4354 = arg1.g1(); + } else if (arg0 == 1) { + this.anInt4345 = arg1.g2(); + } else if (arg0 == 2) { + this.anInt4350 = arg1.g2(); + } else if (arg0 == 3) { + this.anInt4353 = arg1.g2(); + } else if (arg0 == 4) { + this.anInt4346 = arg1.g2(); + } else if (arg0 == 5) { + this.anInt4347 = arg1.g2(); + } else if (arg0 == 6) { + this.anInt4351 = arg1.g1(); + } else if (arg0 == 7) { + this.anInt4344 = arg1.g2(); + } else if (arg0 == 8) { + this.anInt4360 = arg1.g2(); } } } diff --git a/client/src/main/java/rt4/TextureOp29.java b/client/src/main/java/rt4/TextureOp29.java index f103149..70218d9 100644 --- a/client/src/main/java/rt4/TextureOp29.java +++ b/client/src/main/java/rt4/TextureOp29.java @@ -34,20 +34,20 @@ public final class TextureOp29 extends TextureOp { @OriginalMember(owner = "client!si", name = "a", descriptor = "(IB)[I") @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(13) int[] local13 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - this.method3934(this.aClass121_41.method3446()); + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(13) int[] local13 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + this.method3934(this.monochromeImageCache.method3446()); } return local13; } @OriginalMember(owner = "client!si", name = "a", descriptor = "(I[[I)V") private void method3934(@OriginalArg(1) int[][] arg0) { - @Pc(7) int local7 = Static10.anInt4165; - @Pc(9) int local9 = Static10.anInt4457; + @Pc(7) int local7 = Texture.height; + @Pc(9) int local9 = Texture.width; Static81.method1751(arg0); - method2263(Static10.anInt3473, Static34.anInt1060); + method2263(Texture.heightMask, Texture.widthMask); if (this.aClass18Array1 == null) { return; } @@ -69,7 +69,7 @@ public final class TextureOp29 extends TextureOp { @OriginalMember(owner = "client!si", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { if (arg0 == 0) { this.aClass18Array1 = new TextureOp29SubOp[arg1.g1()]; for (@Pc(11) int local11 = 0; local11 < this.aClass18Array1.length; local11++) { @@ -85,27 +85,27 @@ public final class TextureOp29 extends TextureOp { } } } else if (arg0 == 1) { - this.aBoolean309 = arg1.g1() == 1; + this.monochrome = arg1.g1() == 1; } } @OriginalMember(owner = "client!si", name = "b", descriptor = "(II)[[I") @Override - public final int[][] method4638(@OriginalArg(1) int arg0) { - @Pc(14) int[][] local14 = this.aClass103_41.method3173(arg0); - if (this.aClass103_41.aBoolean195) { - @Pc(20) int local20 = Static10.anInt4457; - @Pc(22) int local22 = Static10.anInt4165; + public final int[][] getColorOutput(@OriginalArg(1) int arg0) { + @Pc(14) int[][] local14 = this.colorImageCache.get(arg0); + if (this.colorImageCache.invalid) { + @Pc(20) int local20 = Texture.width; + @Pc(22) int local22 = Texture.height; @Pc(26) int[][] local26 = new int[local22][local20]; - @Pc(31) int[][][] local31 = this.aClass103_41.method3168(); + @Pc(31) int[][][] local31 = this.colorImageCache.method3168(); this.method3934(local26); - for (@Pc(37) int local37 = 0; local37 < Static10.anInt4165; local37++) { + for (@Pc(37) int local37 = 0; local37 < Texture.height; local37++) { @Pc(44) int[] local44 = local26[local37]; @Pc(48) int[][] local48 = local31[local37]; @Pc(52) int[] local52 = local48[0]; @Pc(56) int[] local56 = local48[1]; @Pc(60) int[] local60 = local48[2]; - for (@Pc(62) int local62 = 0; local62 < Static10.anInt4457; local62++) { + for (@Pc(62) int local62 = 0; local62 < Texture.width; local62++) { @Pc(73) int local73 = local44[local62]; local60[local62] = (local73 & 0xFF) << 4; local56[local62] = local73 >> 4 & 0xFF0; diff --git a/client/src/main/java/rt4/TextureOp3.java b/client/src/main/java/rt4/TextureOp3.java deleted file mode 100644 index 51d7fe6..0000000 --- a/client/src/main/java/rt4/TextureOp3.java +++ /dev/null @@ -1,75 +0,0 @@ -package rt4; - -import org.openrs2.deob.annotation.OriginalArg; -import org.openrs2.deob.annotation.OriginalClass; -import org.openrs2.deob.annotation.OriginalMember; -import org.openrs2.deob.annotation.Pc; - -@OriginalClass("client!an") -public final class TextureOp3 extends TextureOp { - - @OriginalMember(owner = "client!an", name = "R", descriptor = "I") - private int anInt316 = 4096; - - @OriginalMember(owner = "client!an", name = "bb", descriptor = "Z") - private boolean aBoolean11 = true; - - @OriginalMember(owner = "client!an", name = "", descriptor = "()V") - public TextureOp3() { - super(1, false); - } - - @OriginalMember(owner = "client!an", name = "a", descriptor = "(ILclient!wa;Z)V") - @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { - if (arg0 == 0) { - this.anInt316 = arg1.g2(); - } else if (arg0 == 1) { - this.aBoolean11 = arg1.g1() == 1; - } - } - - @OriginalMember(owner = "client!an", name = "b", descriptor = "(II)[[I") - @Override - public final int[][] method4638(@OriginalArg(1) int arg0) { - @Pc(11) int[][] local11 = this.aClass103_41.method3173(arg0); - if (this.aClass103_41.aBoolean195) { - @Pc(25) int[] local25 = this.method4624(0, Static10.anInt3473 & arg0 - 1); - @Pc(31) int[] local31 = this.method4624(0, arg0); - @Pc(41) int[] local41 = this.method4624(0, arg0 + 1 & Static10.anInt3473); - @Pc(45) int[] local45 = local11[0]; - @Pc(49) int[] local49 = local11[1]; - @Pc(53) int[] local53 = local11[2]; - for (@Pc(55) int local55 = 0; local55 < Static10.anInt4457; local55++) { - @Pc(70) int local70 = this.anInt316 * (local41[local55] - local25[local55]); - @Pc(90) int local90 = this.anInt316 * (local31[local55 + 1 & Static34.anInt1060] - local31[Static34.anInt1060 & local55 - 1]); - @Pc(94) int local94 = local70 >> 12; - @Pc(98) int local98 = local90 >> 12; - @Pc(104) int local104 = local94 * local94 >> 12; - @Pc(110) int local110 = local98 * local98 >> 12; - @Pc(124) int local124 = (int) (Math.sqrt((double) ((float) (local110 + local104 + 4096) / 4096.0F)) * 4096.0D); - @Pc(131) int local131; - @Pc(133) int local133; - @Pc(129) int local129; - if (local124 == 0) { - local129 = 0; - local131 = 0; - local133 = 0; - } else { - local129 = 16777216 / local124; - local133 = local70 / local124; - local131 = local90 / local124; - } - if (this.aBoolean11) { - local133 = (local133 >> 1) + 2048; - local129 = (local129 >> 1) + 2048; - local131 = (local131 >> 1) + 2048; - } - local45[local55] = local131; - local49[local55] = local133; - local53[local55] = local129; - } - } - return local11; - } -} diff --git a/client/src/main/java/rt4/TextureOp30.java b/client/src/main/java/rt4/TextureOp30.java deleted file mode 100644 index 365089f..0000000 --- a/client/src/main/java/rt4/TextureOp30.java +++ /dev/null @@ -1,103 +0,0 @@ -package rt4; - -import org.openrs2.deob.annotation.OriginalArg; -import org.openrs2.deob.annotation.OriginalClass; -import org.openrs2.deob.annotation.OriginalMember; -import org.openrs2.deob.annotation.Pc; - -@OriginalClass("client!sk") -public final class TextureOp30 extends TextureOp { - - @OriginalMember(owner = "client!sk", name = "Y", descriptor = "I") - private int anInt5197 = 4096; - - @OriginalMember(owner = "client!sk", name = "X", descriptor = "I") - private int anInt5196 = 4096; - - @OriginalMember(owner = "client!sk", name = "fb", descriptor = "I") - private int anInt5201 = 4096; - - @OriginalMember(owner = "client!sk", name = "W", descriptor = "I") - private int anInt5195 = 409; - - @OriginalMember(owner = "client!sk", name = "V", descriptor = "[I") - private final int[] anIntArray450 = new int[3]; - - @OriginalMember(owner = "client!sk", name = "", descriptor = "()V") - public TextureOp30() { - super(1, false); - } - - @OriginalMember(owner = "client!sk", name = "a", descriptor = "(ILclient!wa;Z)V") - @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { - if (arg0 == 0) { - this.anInt5195 = arg1.g2(); - } else if (arg0 == 1) { - this.anInt5196 = arg1.g2(); - } else if (arg0 == 2) { - this.anInt5197 = arg1.g2(); - } else if (arg0 == 3) { - this.anInt5201 = arg1.g2(); - } else if (arg0 == 4) { - @Pc(65) int local65 = arg1.g3(); - this.anIntArray450[2] = local65 >> 12 & 0x0; - this.anIntArray450[1] = local65 >> 4 & 0xFF0; - this.anIntArray450[0] = (local65 & 0xFF0000) << 4; - } - } - - @OriginalMember(owner = "client!sk", name = "b", descriptor = "(II)[[I") - @Override - public final int[][] method4638(@OriginalArg(1) int arg0) { - @Pc(15) int[][] local15 = this.aClass103_41.method3173(arg0); - if (this.aClass103_41.aBoolean195) { - @Pc(25) int[][] local25 = this.method4634(arg0, 0); - @Pc(29) int[] local29 = local25[0]; - @Pc(33) int[] local33 = local25[1]; - @Pc(37) int[] local37 = local25[2]; - @Pc(41) int[] local41 = local15[0]; - @Pc(45) int[] local45 = local15[1]; - @Pc(49) int[] local49 = local15[2]; - for (@Pc(51) int local51 = 0; local51 < Static10.anInt4457; local51++) { - @Pc(58) int local58 = local29[local51]; - @Pc(66) int local66 = local58 - this.anIntArray450[0]; - if (local66 < 0) { - local66 = -local66; - } - if (this.anInt5195 < local66) { - local41[local51] = local58; - local45[local51] = local33[local51]; - local49[local51] = local37[local51]; - } else { - @Pc(100) int local100 = local33[local51]; - local66 = local100 - this.anIntArray450[1]; - if (local66 < 0) { - local66 = -local66; - } - if (local66 > this.anInt5195) { - local41[local51] = local58; - local45[local51] = local100; - local49[local51] = local37[local51]; - } else { - @Pc(141) int local141 = local37[local51]; - local66 = local141 - this.anIntArray450[2]; - if (local66 < 0) { - local66 = -local66; - } - if (local66 <= this.anInt5195) { - local41[local51] = this.anInt5201 * local58 >> 12; - local45[local51] = this.anInt5197 * local100 >> 12; - local49[local51] = this.anInt5196 * local141 >> 12; - } else { - local41[local51] = local58; - local45[local51] = local100; - local49[local51] = local141; - } - } - } - } - } - return local15; - } -} diff --git a/client/src/main/java/rt4/TextureOp31.java b/client/src/main/java/rt4/TextureOp31.java index 0bf854c..e387587 100644 --- a/client/src/main/java/rt4/TextureOp31.java +++ b/client/src/main/java/rt4/TextureOp31.java @@ -5,53 +5,63 @@ import org.openrs2.deob.annotation.OriginalClass; import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; -@OriginalClass("client!tb") +@OriginalClass("client!gm") public final class TextureOp31 extends TextureOp { - @OriginalMember(owner = "client!tb", name = "", descriptor = "()V") + @OriginalMember(owner = "client!gm", name = "Z", descriptor = "I") + private int anInt2298 = 1365; + + @OriginalMember(owner = "client!gm", name = "ab", descriptor = "I") + private int anInt2299 = 0; + + @OriginalMember(owner = "client!gm", name = "V", descriptor = "I") + private int anInt2296 = 0; + + @OriginalMember(owner = "client!gm", name = "Y", descriptor = "I") + private int anInt2297 = 20; + + @OriginalMember(owner = "client!gm", name = "", descriptor = "()V") public TextureOp31() { - super(1, false); + super(0, true); } - @OriginalMember(owner = "client!tb", name = "a", descriptor = "(IB)[I") + @OriginalMember(owner = "client!gm", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(7) int[] local7 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(21) int[] local21 = this.method4624(0, arg0); - for (@Pc(23) int local23 = 0; local23 < Static10.anInt4457; local23++) { - local7[local23] = 4096 - local21[local23]; - } - } - return local7; - } - - @OriginalMember(owner = "client!tb", name = "a", descriptor = "(ILclient!wa;Z)V") - @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { if (arg0 == 0) { - this.aBoolean309 = arg1.g1() == 1; + this.anInt2298 = arg1.g2(); + } else if (arg0 == 1) { + this.anInt2297 = arg1.g2(); + } else if (arg0 == 2) { + this.anInt2296 = arg1.g2(); + } else if (arg0 == 3) { + this.anInt2299 = arg1.g2(); } } - @OriginalMember(owner = "client!tb", name = "b", descriptor = "(II)[[I") + @OriginalMember(owner = "client!gm", name = "a", descriptor = "(IB)[I") @Override - public final int[][] method4638(@OriginalArg(1) int arg0) { - @Pc(18) int[][] local18 = this.aClass103_41.method3173(arg0); - if (this.aClass103_41.aBoolean195) { - @Pc(28) int[][] local28 = this.method4634(arg0, 0); - @Pc(32) int[] local32 = local28[2]; - @Pc(36) int[] local36 = local28[0]; - @Pc(40) int[] local40 = local28[1]; - @Pc(44) int[] local44 = local18[0]; - @Pc(48) int[] local48 = local18[1]; - @Pc(52) int[] local52 = local18[2]; - for (@Pc(54) int local54 = 0; local54 < Static10.anInt4457; local54++) { - local44[local54] = 4096 - local36[local54]; - local48[local54] = 4096 - local40[local54]; - local52[local54] = 4096 - local32[local54]; + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(19) int[] local19 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + for (@Pc(26) int local26 = 0; local26 < Texture.width; local26++) { + @Pc(45) int local45 = this.anInt2299 + (Texture.heightFractions[arg0] << 12) / this.anInt2298; + @Pc(57) int local57 = this.anInt2296 + (Texture.widthFractions[local26] << 12) / this.anInt2298; + @Pc(61) int local61 = local57; + @Pc(65) int local65 = local45; + @Pc(67) int local67 = 0; + @Pc(73) int local73 = local57 * local57 >> 12; + @Pc(79) int local79 = local45 * local45 >> 12; + while (local73 + local79 < 16384 && this.anInt2297 > local67) { + local65 = (local61 * local65 >> 12) * 2 + local45; + local67++; + local61 = local73 + local57 - local79; + local79 = local65 * local65 >> 12; + local73 = local61 * local61 >> 12; + } + local19[local26] = local67 >= this.anInt2297 - 1 ? 0 : (local67 << 12) / this.anInt2297; } } - return local18; + return local19; } } diff --git a/client/src/main/java/rt4/TextureOp32.java b/client/src/main/java/rt4/TextureOp32.java index 311b614..0e6b7a9 100644 --- a/client/src/main/java/rt4/TextureOp32.java +++ b/client/src/main/java/rt4/TextureOp32.java @@ -5,93 +5,97 @@ import org.openrs2.deob.annotation.OriginalClass; import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; -@OriginalClass("client!ui") +@OriginalClass("client!pk") public final class TextureOp32 extends TextureOp { - @OriginalMember(owner = "client!ui", name = "U", descriptor = "[I") - private int[] anIntArray483; + @OriginalMember(owner = "client!pk", name = "U", descriptor = "[I") + private final int[] anIntArray406 = new int[3]; - @OriginalMember(owner = "client!ui", name = "gb", descriptor = "I") - private int anInt5535; + @OriginalMember(owner = "client!pk", name = "S", descriptor = "I") + private int anInt4577 = 3216; - @OriginalMember(owner = "client!ui", name = "ib", descriptor = "I") - private int anInt5536; + @OriginalMember(owner = "client!pk", name = "X", descriptor = "I") + private int anInt4580 = 4096; - @OriginalMember(owner = "client!ui", name = "lb", descriptor = "I") - private int anInt5539 = -1; + @OriginalMember(owner = "client!pk", name = "db", descriptor = "I") + private int anInt4584 = 3216; - @OriginalMember(owner = "client!ui", name = "", descriptor = "()V") + @OriginalMember(owner = "client!pk", name = "", descriptor = "()V") public TextureOp32() { - super(0, false); + super(1, true); } - @OriginalMember(owner = "client!ui", name = "b", descriptor = "(II)[[I") + @OriginalMember(owner = "client!pk", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final int[][] method4638(@OriginalArg(1) int arg0) { - @Pc(17) int[][] local17 = this.aClass103_41.method3173(arg0); - if (this.aClass103_41.aBoolean195 && this.method4327()) { - @Pc(42) int local42 = (this.anInt5536 == Static10.anInt4165 ? arg0 : this.anInt5536 * arg0 / Static10.anInt4165) * this.anInt5535; - @Pc(46) int[] local46 = local17[0]; - @Pc(50) int[] local50 = local17[1]; - @Pc(54) int[] local54 = local17[2]; - @Pc(64) int local64; - @Pc(73) int local73; - if (Static10.anInt4457 == this.anInt5535) { - for (local64 = 0; local64 < Static10.anInt4457; local64++) { - local73 = this.anIntArray483[local42++]; - local54[local64] = (local73 & 0xFF) << 4; - local50[local64] = local73 >> 4 & 0xFF0; - local46[local64] = local73 >> 12 & 0xFF0; + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + if (arg0 == 0) { + this.anInt4580 = arg1.g2(); + } else if (arg0 == 1) { + this.anInt4577 = arg1.g2(); + } else if (arg0 == 2) { + this.anInt4584 = arg1.g2(); + } + } + + @OriginalMember(owner = "client!pk", name = "e", descriptor = "(I)V") + @Override + public final void postDecode() { + this.method3533(); + } + + @OriginalMember(owner = "client!pk", name = "a", descriptor = "(IB)[I") + @Override + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(19) int[] local19 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(30) int local30 = Texture.anInt4042 * this.anInt4580 >> 12; + @Pc(40) int[] local40 = this.getChildMonochromeOutput(0, Texture.heightMask & arg0 - 1); + @Pc(46) int[] local46 = this.getChildMonochromeOutput(0, arg0); + @Pc(56) int[] local56 = this.getChildMonochromeOutput(0, arg0 + 1 & Texture.heightMask); + for (@Pc(58) int local58 = 0; local58 < Texture.width; local58++) { + @Pc(81) int local81 = (local46[Texture.widthMask & local58 - 1] - local46[local58 + 1 & Texture.widthMask]) * local30 >> 12; + @Pc(94) int local94 = local30 * (local56[local58] - local40[local58]) >> 12; + @Pc(98) int local98 = local81 >> 4; + if (local98 < 0) { + local98 = -local98; } - } else { - for (local64 = 0; local64 < Static10.anInt4457; local64++) { - local73 = this.anInt5535 * local64 / Static10.anInt4457; - @Pc(122) int local122 = this.anIntArray483[local42 + local73]; - local54[local64] = (local122 & 0xFF) << 4; - local50[local64] = local122 >> 4 & 0xFF0; - local46[local64] = local122 >> 12 & 0xFF0; + if (local98 > 255) { + local98 = 255; } + @Pc(113) int local113 = local94 >> 4; + if (local113 < 0) { + local113 = -local113; + } + if (local113 > 255) { + local113 = 255; + } + @Pc(142) int local142 = MonochromeImageCache.aByteArray53[(local113 * (local113 + 1) >> 1) + local98] & 0xFF; + @Pc(148) int local148 = local94 * local142 >> 8; + @Pc(154) int local154 = local142 * local81 >> 8; + @Pc(163) int local163 = local148 * this.anIntArray406[1] >> 12; + @Pc(172) int local172 = this.anIntArray406[0] * local154 >> 12; + @Pc(178) int local178 = local142 * 4096 >> 8; + @Pc(187) int local187 = local178 * this.anIntArray406[2] >> 12; + local19[local58] = local187 + local163 + local172; } } - return local17; + return local19; } - @OriginalMember(owner = "client!ui", name = "a", descriptor = "(Z)Z") - private boolean method4327() { - if (this.anIntArray483 != null) { - return true; - } else if (this.anInt5539 < 0) { - return false; - } else { - @Pc(22) int local22 = Static10.anInt4457; - @Pc(24) int local24 = Static10.anInt4165; - @Pc(34) int local34 = Texture.anInterface1_1.isLowDetail(this.anInt5539) ? 64 : 128; - this.anIntArray483 = Texture.anInterface1_1.method3235(this.anInt5539); - this.anInt5536 = local34; - this.anInt5535 = local34; - Static10.method348(local24, local22); - return this.anIntArray483 != null; + @OriginalMember(owner = "client!pk", name = "g", descriptor = "(B)V") + private void method3533() { + @Pc(7) double local7 = Math.cos((double) ((float) this.anInt4584 / 4096.0F)); + this.anIntArray406[0] = (int) (local7 * 4096.0D * Math.sin((double) ((float) this.anInt4577 / 4096.0F))); + this.anIntArray406[1] = (int) (Math.cos((double) ((float) this.anInt4577 / 4096.0F)) * local7 * 4096.0D); + this.anIntArray406[2] = (int) (Math.sin((double) ((float) this.anInt4584 / 4096.0F)) * 4096.0D); + @Pc(73) int local73 = this.anIntArray406[2] * this.anIntArray406[2] >> 12; + @Pc(85) int local85 = this.anIntArray406[1] * this.anIntArray406[1] >> 12; + @Pc(97) int local97 = this.anIntArray406[0] * this.anIntArray406[0] >> 12; + @Pc(111) int local111 = (int) (Math.sqrt((double) (local97 + local85 + local73 >> 12)) * 4096.0D); + if (local111 != 0) { + this.anIntArray406[2] = (this.anIntArray406[2] << 12) / local111; + this.anIntArray406[0] = (this.anIntArray406[0] << 12) / local111; + this.anIntArray406[1] = (this.anIntArray406[1] << 12) / local111; } } - - @OriginalMember(owner = "client!ui", name = "a", descriptor = "(ILclient!wa;Z)V") - @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { - if (arg0 == 0) { - this.anInt5539 = arg1.g2(); - } - } - - @OriginalMember(owner = "client!ui", name = "e", descriptor = "(B)V") - @Override - public final void method4633() { - super.method4633(); - this.anIntArray483 = null; - } - - @OriginalMember(owner = "client!ui", name = "d", descriptor = "(B)I") - @Override - public final int method4627() { - return this.anInt5539; - } } diff --git a/client/src/main/java/rt4/TextureOp33.java b/client/src/main/java/rt4/TextureOp33.java index 289ed9b..6ddfa17 100644 --- a/client/src/main/java/rt4/TextureOp33.java +++ b/client/src/main/java/rt4/TextureOp33.java @@ -1,127 +1,75 @@ package rt4; -import java.util.Random; import org.openrs2.deob.annotation.OriginalArg; import org.openrs2.deob.annotation.OriginalClass; import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; -@OriginalClass("client!vc") +@OriginalClass("client!an") public final class TextureOp33 extends TextureOp { - @OriginalMember(owner = "client!vc", name = "P", descriptor = "I") - private int anInt5709 = 0; + @OriginalMember(owner = "client!an", name = "R", descriptor = "I") + private int anInt316 = 4096; - @OriginalMember(owner = "client!vc", name = "U", descriptor = "I") - private int anInt5712 = 2000; + @OriginalMember(owner = "client!an", name = "bb", descriptor = "Z") + private boolean aBoolean11 = true; - @OriginalMember(owner = "client!vc", name = "Z", descriptor = "I") - private int anInt5715 = 16; - - @OriginalMember(owner = "client!vc", name = "Y", descriptor = "I") - private int anInt5714 = 4096; - - @OriginalMember(owner = "client!vc", name = "cb", descriptor = "I") - private int anInt5716 = 0; - - @OriginalMember(owner = "client!vc", name = "", descriptor = "()V") + @OriginalMember(owner = "client!an", name = "", descriptor = "()V") public TextureOp33() { - super(0, true); + super(1, false); } - @OriginalMember(owner = "client!vc", name = "e", descriptor = "(I)V") + @OriginalMember(owner = "client!an", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final void method4630() { - Static9.method185(); - } - - @OriginalMember(owner = "client!vc", name = "a", descriptor = "(ILclient!wa;Z)V") - @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { if (arg0 == 0) { - this.anInt5716 = arg1.g1(); + this.anInt316 = arg1.g2(); } else if (arg0 == 1) { - this.anInt5712 = arg1.g2(); - } else if (arg0 == 2) { - this.anInt5715 = arg1.g1(); - } else if (arg0 == 3) { - this.anInt5709 = arg1.g2(); - } else if (arg0 == 4) { - this.anInt5714 = arg1.g2(); + this.aBoolean11 = arg1.g1() == 1; } } - @OriginalMember(owner = "client!vc", name = "a", descriptor = "(IB)[I") + @OriginalMember(owner = "client!an", name = "b", descriptor = "(II)[[I") @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(19) int[] local19 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(28) int local28 = this.anInt5714 >> 1; - @Pc(33) int[][] local33 = this.aClass121_41.method3446(); - @Pc(40) Random local40 = new Random((long) this.anInt5716); - for (@Pc(42) int local42 = 0; local42 < this.anInt5712; local42++) { - @Pc(64) int local64 = this.anInt5714 > 0 ? this.anInt5709 + Static171.method3219(this.anInt5714, local40) - local28 : this.anInt5709; - @Pc(69) int local69 = Static171.method3219(Static10.anInt4457, local40); - @Pc(75) int local75 = local64 >> 4 & 0xFF; - @Pc(80) int local80 = Static171.method3219(Static10.anInt4165, local40); - @Pc(92) int local92 = local69 + (this.anInt5715 * Static9.anIntArray299[local75] >> 12); - @Pc(103) int local103 = local80 + (Static9.anIntArray282[local75] * this.anInt5715 >> 12); - @Pc(107) int local107 = local92 - local69; - @Pc(112) int local112 = local103 - local80; - if (local107 != 0 || local112 != 0) { - if (local107 < 0) { - local107 = -local107; - } - if (local112 < 0) { - local112 = -local112; - } - @Pc(146) boolean local146 = local112 > local107; - @Pc(150) int local150; - @Pc(152) int local152; - if (local146) { - local150 = local69; - local152 = local92; - local92 = local103; - local103 = local152; - local69 = local80; - local80 = local150; - } - if (local69 > local92) { - local150 = local69; - local152 = local80; - local69 = local92; - local80 = local103; - local103 = local152; - local92 = local150; - } - local152 = local92 - local69; - @Pc(190) int local190 = local103 - local80; - local150 = local80; - if (local190 < 0) { - local190 = -local190; - } - @Pc(206) int local206 = -local152 / 2; - @Pc(216) int local216 = 1024 - (Static171.method3219(4096, local40) >> 2); - @Pc(227) int local227 = local103 <= local80 ? -1 : 1; - @Pc(231) int local231 = 2048 / local152; - for (@Pc(233) int local233 = local69; local233 < local92; local233++) { - local206 += local190; - @Pc(251) int local251 = local231 * (local233 - local69) + local216 + 1024; - @Pc(255) int local255 = local150 & Static10.anInt3473; - if (local206 > 0) { - local206 += -local152; - local150 += local227; - } - @Pc(271) int local271 = Static34.anInt1060 & local233; - if (local146) { - local33[local255][local271] = local251; - } else { - local33[local271][local255] = local251; - } - } + public final int[][] getColorOutput(@OriginalArg(1) int arg0) { + @Pc(11) int[][] local11 = this.colorImageCache.get(arg0); + if (this.colorImageCache.invalid) { + @Pc(25) int[] local25 = this.getChildMonochromeOutput(0, Texture.heightMask & arg0 - 1); + @Pc(31) int[] local31 = this.getChildMonochromeOutput(0, arg0); + @Pc(41) int[] local41 = this.getChildMonochromeOutput(0, arg0 + 1 & Texture.heightMask); + @Pc(45) int[] local45 = local11[0]; + @Pc(49) int[] local49 = local11[1]; + @Pc(53) int[] local53 = local11[2]; + for (@Pc(55) int local55 = 0; local55 < Texture.width; local55++) { + @Pc(70) int local70 = this.anInt316 * (local41[local55] - local25[local55]); + @Pc(90) int local90 = this.anInt316 * (local31[local55 + 1 & Texture.widthMask] - local31[Texture.widthMask & local55 - 1]); + @Pc(94) int local94 = local70 >> 12; + @Pc(98) int local98 = local90 >> 12; + @Pc(104) int local104 = local94 * local94 >> 12; + @Pc(110) int local110 = local98 * local98 >> 12; + @Pc(124) int local124 = (int) (Math.sqrt((double) ((float) (local110 + local104 + 4096) / 4096.0F)) * 4096.0D); + @Pc(131) int local131; + @Pc(133) int local133; + @Pc(129) int local129; + if (local124 == 0) { + local129 = 0; + local131 = 0; + local133 = 0; + } else { + local129 = 16777216 / local124; + local133 = local70 / local124; + local131 = local90 / local124; } + if (this.aBoolean11) { + local133 = (local133 >> 1) + 2048; + local129 = (local129 >> 1) + 2048; + local131 = (local131 >> 1) + 2048; + } + local45[local55] = local131; + local49[local55] = local133; + local53[local55] = local129; } } - return local19; + return local11; } } diff --git a/client/src/main/java/rt4/TextureOp34.java b/client/src/main/java/rt4/TextureOp34.java new file mode 100644 index 0000000..37925e6 --- /dev/null +++ b/client/src/main/java/rt4/TextureOp34.java @@ -0,0 +1,256 @@ +package rt4; + +import org.openrs2.deob.annotation.OriginalArg; +import org.openrs2.deob.annotation.OriginalClass; +import org.openrs2.deob.annotation.OriginalMember; +import org.openrs2.deob.annotation.Pc; + +@OriginalClass("client!bi") +public final class TextureOp34 extends TextureOp { + + @OriginalMember(owner = "client!bi", name = "ib", descriptor = "[S") + private short[] aShortArray3; + + @OriginalMember(owner = "client!bi", name = "lb", descriptor = "[S") + private short[] aShortArray4; + + @OriginalMember(owner = "client!bi", name = "X", descriptor = "I") + public int anInt641 = 4; + + @OriginalMember(owner = "client!bi", name = "eb", descriptor = "I") + public int anInt646 = 4; + + @OriginalMember(owner = "client!bi", name = "kb", descriptor = "Z") + public boolean aBoolean44 = true; + + @OriginalMember(owner = "client!bi", name = "gb", descriptor = "I") + public int anInt648 = 1638; + + @OriginalMember(owner = "client!bi", name = "ab", descriptor = "[B") + private byte[] aByteArray10 = new byte[512]; + + @OriginalMember(owner = "client!bi", name = "Z", descriptor = "I") + public int anInt642 = 4; + + @OriginalMember(owner = "client!bi", name = "mb", descriptor = "I") + public int anInt650 = 0; + + @OriginalMember(owner = "client!bi", name = "", descriptor = "()V") + public TextureOp34() { + super(0, true); + } + + @OriginalMember(owner = "client!bi", name = "a", descriptor = "(ZI[I)V") + public final void method584(@OriginalArg(1) int arg0, @OriginalArg(2) int[] arg1) { + @Pc(12) int local12 = this.anInt641 * Texture.heightFractions[arg0]; + @Pc(115) int local115; + @Pc(129) int local129; + @Pc(40) int local40; + @Pc(27) short local27; + @Pc(105) int local105; + @Pc(60) int local60; + @Pc(54) int local54; + @Pc(47) int local47; + @Pc(85) int local85; + @Pc(64) int local64; + @Pc(68) int local68; + @Pc(77) int local77; + @Pc(103) int local103; + if (this.anInt642 == 1) { + local27 = this.aShortArray4[0]; + local40 = this.aShortArray3[0] << 12; + local60 = local12 * local40 >> 12; + local54 = this.anInt646 * local40 >> 12; + local47 = local40 * this.anInt641 >> 12; + local64 = local60 >> 12; + local77 = this.aByteArray10[local64 & 0xFF] & 0xFF; + local60 &= 0xFFF; + local85 = MonochromeImageCache.anIntArray1[local60]; + local68 = local64 + 1; + if (local47 <= local68) { + local68 = 0; + } + local103 = this.aByteArray10[local68 & 0xFF] & 0xFF; + if (this.aBoolean44) { + for (local105 = 0; local105 < Texture.width; local105++) { + local115 = this.anInt646 * Texture.widthFractions[local105]; + local129 = this.method590(local40 * local115 >> 12, local103, local77, local54, local60, local85); + local129 = local27 * local129 >> 12; + arg1[local105] = (local129 >> 1) + 2048; + } + } else { + for (local105 = 0; local105 < Texture.width; local105++) { + local115 = this.anInt646 * Texture.widthFractions[local105]; + local129 = this.method590(local40 * local115 >> 12, local103, local77, local54, local60, local85); + arg1[local105] = local27 * local129 >> 12; + } + } + return; + } + local27 = this.aShortArray4[0]; + if (local27 > 8 || local27 < -8) { + local40 = this.aShortArray3[0] << 12; + local47 = local40 * this.anInt641 >> 12; + local54 = this.anInt646 * local40 >> 12; + local60 = local12 * local40 >> 12; + local64 = local60 >> 12; + local68 = local64 + 1; + local77 = this.aByteArray10[local64 & 0xFF] & 0xFF; + @Pc(81) int local81 = local60 & 0xFFF; + local85 = MonochromeImageCache.anIntArray1[local81]; + if (local68 >= local47) { + local68 = 0; + } + local103 = this.aByteArray10[local68 & 0xFF] & 0xFF; + for (local105 = 0; local105 < Texture.width; local105++) { + local115 = Texture.widthFractions[local105] * this.anInt646; + local129 = this.method590(local115 * local40 >> 12, local103, local77, local54, local81, local85); + arg1[local105] = local129 * local27 >> 12; + } + } + for (@Pc(142) int local142 = 1; local142 < this.anInt642; local142++) { + local27 = this.aShortArray4[local142]; + if (local27 > 8 || local27 < -8) { + local40 = this.aShortArray3[local142] << 12; + local60 = local40 * local12 >> 12; + local64 = local60 >> 12; + local77 = this.aByteArray10[local64 & 0xFF] & 0xFF; + local54 = this.anInt646 * local40 >> 12; + local68 = local64 + 1; + local60 &= 0xFFF; + local85 = MonochromeImageCache.anIntArray1[local60]; + local47 = this.anInt641 * local40 >> 12; + if (local68 >= local47) { + local68 = 0; + } + local103 = this.aByteArray10[local68 & 0xFF] & 0xFF; + if (this.aBoolean44 && local142 == this.anInt642 - 1) { + for (local105 = 0; local105 < Texture.width; local105++) { + local115 = Texture.widthFractions[local105] * this.anInt646; + local129 = this.method590(local40 * local115 >> 12, local103, local77, local54, local60, local85); + local129 = (local27 * local129 >> 12) + arg1[local105]; + arg1[local105] = (local129 >> 1) + 2048; + } + } else { + for (local105 = 0; local105 < Texture.width; local105++) { + local115 = Texture.widthFractions[local105] * this.anInt646; + local129 = this.method590(local115 * local40 >> 12, local103, local77, local54, local60, local85); + arg1[local105] += local129 * local27 >> 12; + } + } + } + } + } + + @OriginalMember(owner = "client!bi", name = "e", descriptor = "(I)V") + @Override + public final void postDecode() { + this.aByteArray10 = Static89.method1837(this.anInt650); + this.method589(); + for (@Pc(15) int local15 = this.anInt642 - 1; local15 >= 1; local15--) { + @Pc(23) short local23 = this.aShortArray4[local15]; + if (local23 > 8 || local23 < -8) { + break; + } + this.anInt642--; + } + } + + @OriginalMember(owner = "client!bi", name = "a", descriptor = "(ILclient!wa;Z)V") + @Override + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + if (arg0 == 0) { + this.aBoolean44 = arg1.g1() == 1; + } else if (arg0 == 1) { + this.anInt642 = arg1.g1(); + } else if (arg0 == 2) { + this.anInt648 = arg1.g2b(); + if (this.anInt648 < 0) { + this.aShortArray4 = new short[this.anInt642]; + for (@Pc(93) int local93 = 0; local93 < this.anInt642; local93++) { + this.aShortArray4[local93] = (short) arg1.g2b(); + } + } + } else if (arg0 == 3) { + this.anInt646 = this.anInt641 = arg1.g1(); + } else if (arg0 == 4) { + this.anInt650 = arg1.g1(); + } else if (arg0 == 5) { + this.anInt646 = arg1.g1(); + } else if (arg0 == 6) { + this.anInt641 = arg1.g1(); + } + } + + @OriginalMember(owner = "client!bi", name = "b", descriptor = "(Z)V") + private void method589() { + @Pc(21) int local21; + if (this.anInt648 > 0) { + this.aShortArray4 = new short[this.anInt642]; + this.aShortArray3 = new short[this.anInt642]; + for (local21 = 0; local21 < this.anInt642; local21++) { + this.aShortArray4[local21] = (short) (Math.pow((double) ((float) this.anInt648 / 4096.0F), (double) local21) * 4096.0D); + this.aShortArray3[local21] = (short) Math.pow(2.0D, (double) local21); + } + } else if (this.aShortArray4 != null && this.aShortArray4.length == this.anInt642) { + this.aShortArray3 = new short[this.anInt642]; + for (local21 = 0; local21 < this.anInt642; local21++) { + this.aShortArray3[local21] = (short) Math.pow(2.0D, (double) local21); + } + } + } + + @OriginalMember(owner = "client!bi", name = "a", descriptor = "(IIIIIII)I") + private int method590(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(5) int arg4, @OriginalArg(6) int arg5) { + @Pc(15) int local15 = arg4 - 4096; + @Pc(19) int local19 = arg0 >> 12; + @Pc(23) int local23 = local19 + 1; + @Pc(27) int local27 = local19 & 0xFF; + if (local23 >= arg3) { + local23 = 0; + } + @Pc(40) int local40 = arg0 & 0xFFF; + @Pc(50) int local50 = this.aByteArray10[local27 + arg2] & 0x3; + @Pc(54) int local54 = MonochromeImageCache.anIntArray1[local40]; + @Pc(70) int local70; + if (local50 > 1) { + local70 = local50 == 2 ? local40 - arg4 : -local40 + -arg4; + } else { + local70 = local50 == 0 ? arg4 + local40 : -local40 + arg4; + } + local23 &= 0xFF; + @Pc(92) int local92 = local40 - 4096; + local50 = this.aByteArray10[arg2 + local23] & 0x3; + @Pc(118) int local118; + if (local50 <= 1) { + local118 = local50 == 0 ? arg4 + local92 : -local92 + arg4; + } else { + local118 = local50 == 2 ? local92 - arg4 : -local92 + -arg4; + } + local50 = this.aByteArray10[local27 + arg1] & 0x3; + @Pc(155) int local155 = local70 + ((local118 - local70) * local54 >> 12); + if (local50 > 1) { + local70 = local50 == 2 ? local40 - local15 : -local40 - local15; + } else { + local70 = local50 == 0 ? local40 + local15 : local15 + -local40; + } + local50 = this.aByteArray10[arg1 + local23] & 0x3; + if (local50 > 1) { + local118 = local50 == 2 ? local92 - local15 : -local15 + -local92; + } else { + local118 = local50 == 0 ? local92 + local15 : local15 + -local92; + } + @Pc(237) int local237 = local70 + ((local118 - local70) * local54 >> 12); + return local155 + (arg5 * (local237 - local155) >> 12); + } + + @OriginalMember(owner = "client!bi", name = "a", descriptor = "(IB)[I") + @Override + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(17) int[] local17 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + this.method584(arg0, local17); + } + return local17; + } +} diff --git a/client/src/main/java/rt4/TextureOp35.java b/client/src/main/java/rt4/TextureOp35.java new file mode 100644 index 0000000..e8f5bf9 --- /dev/null +++ b/client/src/main/java/rt4/TextureOp35.java @@ -0,0 +1,49 @@ +package rt4; + +import org.openrs2.deob.annotation.OriginalArg; +import org.openrs2.deob.annotation.OriginalClass; +import org.openrs2.deob.annotation.OriginalMember; +import org.openrs2.deob.annotation.Pc; + +@OriginalClass("client!pg") +public final class TextureOp35 extends TextureOp { + + @OriginalMember(owner = "client!pg", name = "U", descriptor = "I") + private int anInt4503 = 4096; + + @OriginalMember(owner = "client!pg", name = "", descriptor = "()V") + public TextureOp35() { + super(1, true); + } + + @OriginalMember(owner = "client!pg", name = "a", descriptor = "(IB)[I") + @Override + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(19) int[] local19 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(34) int[] local34 = this.getChildMonochromeOutput(0, arg0 - 1 & Texture.heightMask); + @Pc(40) int[] local40 = this.getChildMonochromeOutput(0, arg0); + @Pc(50) int[] local50 = this.getChildMonochromeOutput(0, Texture.heightMask & arg0 + 1); + for (@Pc(52) int local52 = 0; local52 < Texture.width; local52++) { + @Pc(67) int local67 = (local50[local52] - local34[local52]) * this.anInt4503; + @Pc(87) int local87 = this.anInt4503 * (local40[Texture.widthMask & local52 + 1] - local40[local52 - 1 & Texture.widthMask]); + @Pc(91) int local91 = local87 >> 12; + @Pc(95) int local95 = local67 >> 12; + @Pc(101) int local101 = local91 * local91 >> 12; + @Pc(107) int local107 = local95 * local95 >> 12; + @Pc(121) int local121 = (int) (Math.sqrt((double) ((float) (local107 + local101 + 4096) / 4096.0F)) * 4096.0D); + @Pc(130) int local130 = local121 == 0 ? 0 : 16777216 / local121; + local19[local52] = 4096 - local130; + } + } + return local19; + } + + @OriginalMember(owner = "client!pg", name = "a", descriptor = "(ILclient!wa;Z)V") + @Override + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + if (arg0 == 0) { + this.anInt4503 = arg1.g2(); + } + } +} diff --git a/client/src/main/java/rt4/TextureOp37.java b/client/src/main/java/rt4/TextureOp37.java new file mode 100644 index 0000000..dbf04b0 --- /dev/null +++ b/client/src/main/java/rt4/TextureOp37.java @@ -0,0 +1,108 @@ +package rt4; + +import org.openrs2.deob.annotation.OriginalArg; +import org.openrs2.deob.annotation.OriginalClass; +import org.openrs2.deob.annotation.OriginalMember; +import org.openrs2.deob.annotation.Pc; + +@OriginalClass("client!mh") +public final class TextureOp37 extends TextureOp { + + @OriginalMember(owner = "client!mh", name = "P", descriptor = "I") + private int anInt3843 = 0; + + @OriginalMember(owner = "client!mh", name = "T", descriptor = "I") + private int anInt3847 = 12288; + + @OriginalMember(owner = "client!mh", name = "bb", descriptor = "I") + private int anInt3854 = 2048; + + @OriginalMember(owner = "client!mh", name = "U", descriptor = "I") + private int anInt3848 = 0; + + @OriginalMember(owner = "client!mh", name = "ib", descriptor = "I") + private int anInt3860 = 2048; + + @OriginalMember(owner = "client!mh", name = "Q", descriptor = "I") + private int anInt3844 = 4096; + + @OriginalMember(owner = "client!mh", name = "kb", descriptor = "I") + private int anInt3862 = 8192; + + @OriginalMember(owner = "client!mh", name = "", descriptor = "()V") + public TextureOp37() { + super(0, true); + } + + @OriginalMember(owner = "client!mh", name = "a", descriptor = "(ILclient!wa;Z)V") + @Override + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + if (arg0 == 0) { + this.anInt3860 = arg1.g2(); + } else if (arg0 == 1) { + this.anInt3843 = arg1.g2(); + } else if (arg0 == 2) { + this.anInt3848 = arg1.g2(); + } else if (arg0 == 3) { + this.anInt3854 = arg1.g2(); + } else if (arg0 == 4) { + this.anInt3847 = arg1.g2(); + } else if (arg0 == 5) { + this.anInt3844 = arg1.g2(); + } else if (arg0 == 6) { + this.anInt3862 = arg1.g2(); + } + } + + @OriginalMember(owner = "client!mh", name = "a", descriptor = "(IB)[I") + @Override + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(19) int[] local19 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(30) int local30 = Texture.heightFractions[arg0] - 2048; + for (@Pc(32) int local32 = 0; local32 < Texture.width; local32++) { + @Pc(40) int local40 = local30 + this.anInt3843; + @Pc(46) int local46 = Texture.widthFractions[local32] - 2048; + @Pc(51) int local51 = this.anInt3860 + local46; + @Pc(62) int local62 = local40 < -2048 ? local40 + 4096 : local40; + @Pc(71) int local71 = local62 > 2048 ? local62 - 4096 : local62; + @Pc(76) int local76 = local46 + this.anInt3848; + @Pc(85) int local85 = local51 < -2048 ? local51 + 4096 : local51; + @Pc(96) int local96 = local85 <= 2048 ? local85 : local85 - 4096; + @Pc(107) int local107 = local76 >= -2048 ? local76 : local76 + 4096; + @Pc(118) int local118 = local107 > 2048 ? local107 - 4096 : local107; + @Pc(124) int local124 = local30 + this.anInt3854; + @Pc(133) int local133 = local124 < -2048 ? local124 + 4096 : local124; + @Pc(144) int local144 = local133 > 2048 ? local133 - 4096 : local133; + local19[local32] = this.method3012(local96, local71) || this.method3011(local118, local144) ? 4096 : 0; + } + } + return local19; + } + + @OriginalMember(owner = "client!mh", name = "a", descriptor = "(BII)Z") + private boolean method3011(@OriginalArg(1) int arg0, @OriginalArg(2) int arg1) { + @Pc(12) int local12 = this.anInt3847 * (arg0 + arg1) >> 12; + @Pc(27) int local27 = TextureOp.COSINE[local12 * 255 >> 12 & 0xFF]; + @Pc(34) int local34 = (local27 << 12) / this.anInt3847; + @Pc(41) int local41 = (local34 << 12) / this.anInt3862; + @Pc(48) int local48 = local41 * this.anInt3844 >> 12; + return local48 > arg1 - arg0 && -local48 < arg1 - arg0; + } + + @OriginalMember(owner = "client!mh", name = "e", descriptor = "(I)V") + @Override + public final void postDecode() { + TextureOp.createTrigonometryTables(); + } + + @OriginalMember(owner = "client!mh", name = "b", descriptor = "(IIB)Z") + private boolean method3012(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) { + @Pc(8) int local8 = (arg1 - arg0) * this.anInt3847 >> 12; + @Pc(31) int local31 = TextureOp.COSINE[local8 * 255 >> 12 & 0xFF]; + @Pc(38) int local38 = (local31 << 12) / this.anInt3847; + @Pc(45) int local45 = (local38 << 12) / this.anInt3862; + @Pc(52) int local52 = local45 * this.anInt3844 >> 12; + return arg1 + arg0 < local52 && -local52 < arg1 + arg0; + } +} diff --git a/client/src/main/java/rt4/TextureOp38.java b/client/src/main/java/rt4/TextureOp38.java new file mode 100644 index 0000000..738434c --- /dev/null +++ b/client/src/main/java/rt4/TextureOp38.java @@ -0,0 +1,127 @@ +package rt4; + +import java.util.Random; +import org.openrs2.deob.annotation.OriginalArg; +import org.openrs2.deob.annotation.OriginalClass; +import org.openrs2.deob.annotation.OriginalMember; +import org.openrs2.deob.annotation.Pc; + +@OriginalClass("client!vc") +public final class TextureOp38 extends TextureOp { + + @OriginalMember(owner = "client!vc", name = "P", descriptor = "I") + private int anInt5709 = 0; + + @OriginalMember(owner = "client!vc", name = "U", descriptor = "I") + private int anInt5712 = 2000; + + @OriginalMember(owner = "client!vc", name = "Z", descriptor = "I") + private int anInt5715 = 16; + + @OriginalMember(owner = "client!vc", name = "Y", descriptor = "I") + private int anInt5714 = 4096; + + @OriginalMember(owner = "client!vc", name = "cb", descriptor = "I") + private int anInt5716 = 0; + + @OriginalMember(owner = "client!vc", name = "", descriptor = "()V") + public TextureOp38() { + super(0, true); + } + + @OriginalMember(owner = "client!vc", name = "e", descriptor = "(I)V") + @Override + public final void postDecode() { + TextureOp.createTrigonometryTables(); + } + + @OriginalMember(owner = "client!vc", name = "a", descriptor = "(ILclient!wa;Z)V") + @Override + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + if (arg0 == 0) { + this.anInt5716 = arg1.g1(); + } else if (arg0 == 1) { + this.anInt5712 = arg1.g2(); + } else if (arg0 == 2) { + this.anInt5715 = arg1.g1(); + } else if (arg0 == 3) { + this.anInt5709 = arg1.g2(); + } else if (arg0 == 4) { + this.anInt5714 = arg1.g2(); + } + } + + @OriginalMember(owner = "client!vc", name = "a", descriptor = "(IB)[I") + @Override + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(19) int[] local19 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(28) int local28 = this.anInt5714 >> 1; + @Pc(33) int[][] local33 = this.monochromeImageCache.method3446(); + @Pc(40) Random local40 = new Random((long) this.anInt5716); + for (@Pc(42) int local42 = 0; local42 < this.anInt5712; local42++) { + @Pc(64) int local64 = this.anInt5714 > 0 ? this.anInt5709 + Static171.method3219(this.anInt5714, local40) - local28 : this.anInt5709; + @Pc(69) int local69 = Static171.method3219(Texture.width, local40); + @Pc(75) int local75 = local64 >> 4 & 0xFF; + @Pc(80) int local80 = Static171.method3219(Texture.height, local40); + @Pc(92) int local92 = local69 + (this.anInt5715 * TextureOp.COSINE[local75] >> 12); + @Pc(103) int local103 = local80 + (TextureOp.SINE[local75] * this.anInt5715 >> 12); + @Pc(107) int local107 = local92 - local69; + @Pc(112) int local112 = local103 - local80; + if (local107 != 0 || local112 != 0) { + if (local107 < 0) { + local107 = -local107; + } + if (local112 < 0) { + local112 = -local112; + } + @Pc(146) boolean local146 = local112 > local107; + @Pc(150) int local150; + @Pc(152) int local152; + if (local146) { + local150 = local69; + local152 = local92; + local92 = local103; + local103 = local152; + local69 = local80; + local80 = local150; + } + if (local69 > local92) { + local150 = local69; + local152 = local80; + local69 = local92; + local80 = local103; + local103 = local152; + local92 = local150; + } + local152 = local92 - local69; + @Pc(190) int local190 = local103 - local80; + local150 = local80; + if (local190 < 0) { + local190 = -local190; + } + @Pc(206) int local206 = -local152 / 2; + @Pc(216) int local216 = 1024 - (Static171.method3219(4096, local40) >> 2); + @Pc(227) int local227 = local103 <= local80 ? -1 : 1; + @Pc(231) int local231 = 2048 / local152; + for (@Pc(233) int local233 = local69; local233 < local92; local233++) { + local206 += local190; + @Pc(251) int local251 = local231 * (local233 - local69) + local216 + 1024; + @Pc(255) int local255 = local150 & Texture.heightMask; + if (local206 > 0) { + local206 += -local152; + local150 += local227; + } + @Pc(271) int local271 = Texture.widthMask & local233; + if (local146) { + local33[local255][local271] = local251; + } else { + local33[local271][local255] = local251; + } + } + } + } + } + return local19; + } +} diff --git a/client/src/main/java/rt4/TextureOp4.java b/client/src/main/java/rt4/TextureOp4.java index 7f9aa64..673a270 100644 --- a/client/src/main/java/rt4/TextureOp4.java +++ b/client/src/main/java/rt4/TextureOp4.java @@ -1,256 +1,170 @@ package rt4; +import java.util.Random; import org.openrs2.deob.annotation.OriginalArg; import org.openrs2.deob.annotation.OriginalClass; import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; -@OriginalClass("client!bi") +@OriginalClass("client!mc") public final class TextureOp4 extends TextureOp { - @OriginalMember(owner = "client!bi", name = "ib", descriptor = "[S") - private short[] aShortArray3; + @OriginalMember(owner = "client!mc", name = "U", descriptor = "I") + private int anInt3670; - @OriginalMember(owner = "client!bi", name = "lb", descriptor = "[S") - private short[] aShortArray4; + @OriginalMember(owner = "client!mc", name = "V", descriptor = "I") + private int anInt3671; - @OriginalMember(owner = "client!bi", name = "X", descriptor = "I") - public int anInt641 = 4; + @OriginalMember(owner = "client!mc", name = "X", descriptor = "[[I") + private int[][] anIntArrayArray26; - @OriginalMember(owner = "client!bi", name = "eb", descriptor = "I") - public int anInt646 = 4; + @OriginalMember(owner = "client!mc", name = "cb", descriptor = "[I") + private int[] anIntArray352; - @OriginalMember(owner = "client!bi", name = "kb", descriptor = "Z") - public boolean aBoolean44 = true; + @OriginalMember(owner = "client!mc", name = "jb", descriptor = "I") + private int anInt3679; - @OriginalMember(owner = "client!bi", name = "gb", descriptor = "I") - public int anInt648 = 1638; + @OriginalMember(owner = "client!mc", name = "sb", descriptor = "[[I") + private int[][] anIntArrayArray27; - @OriginalMember(owner = "client!bi", name = "ab", descriptor = "[B") - private byte[] aByteArray10 = new byte[512]; + @OriginalMember(owner = "client!mc", name = "P", descriptor = "I") + private int anInt3667 = 204; - @OriginalMember(owner = "client!bi", name = "Z", descriptor = "I") - public int anInt642 = 4; + @OriginalMember(owner = "client!mc", name = "bb", descriptor = "I") + private int anInt3673 = 1024; - @OriginalMember(owner = "client!bi", name = "mb", descriptor = "I") - public int anInt650 = 0; + @OriginalMember(owner = "client!mc", name = "eb", descriptor = "I") + private int anInt3675 = 0; - @OriginalMember(owner = "client!bi", name = "", descriptor = "()V") + @OriginalMember(owner = "client!mc", name = "lb", descriptor = "I") + private int anInt3681 = 409; + + @OriginalMember(owner = "client!mc", name = "hb", descriptor = "I") + private int anInt3677 = 8; + + @OriginalMember(owner = "client!mc", name = "W", descriptor = "I") + private int anInt3672 = 81; + + @OriginalMember(owner = "client!mc", name = "ub", descriptor = "I") + private int anInt3685 = 4; + + @OriginalMember(owner = "client!mc", name = "ib", descriptor = "I") + private int anInt3678 = 1024; + + @OriginalMember(owner = "client!mc", name = "", descriptor = "()V") public TextureOp4() { super(0, true); } - @OriginalMember(owner = "client!bi", name = "a", descriptor = "(ZI[I)V") - public final void method584(@OriginalArg(1) int arg0, @OriginalArg(2) int[] arg1) { - @Pc(12) int local12 = this.anInt641 * Static10.anIntArray153[arg0]; - @Pc(115) int local115; - @Pc(129) int local129; - @Pc(40) int local40; - @Pc(27) short local27; - @Pc(105) int local105; - @Pc(60) int local60; - @Pc(54) int local54; - @Pc(47) int local47; - @Pc(85) int local85; - @Pc(64) int local64; - @Pc(68) int local68; - @Pc(77) int local77; - @Pc(103) int local103; - if (this.anInt642 == 1) { - local27 = this.aShortArray4[0]; - local40 = this.aShortArray3[0] << 12; - local60 = local12 * local40 >> 12; - local54 = this.anInt646 * local40 >> 12; - local47 = local40 * this.anInt641 >> 12; - local64 = local60 >> 12; - local77 = this.aByteArray10[local64 & 0xFF] & 0xFF; - local60 &= 0xFFF; - local85 = MonochromeImageCache.anIntArray1[local60]; - local68 = local64 + 1; - if (local47 <= local68) { - local68 = 0; + @OriginalMember(owner = "client!mc", name = "e", descriptor = "(I)V") + @Override + public final void postDecode() { + this.method2908(); + } + + @OriginalMember(owner = "client!mc", name = "a", descriptor = "(ILclient!wa;Z)V") + @Override + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + if (arg0 == 0) { + this.anInt3685 = arg1.g1(); + } else if (arg0 == 1) { + this.anInt3677 = arg1.g1(); + } else if (arg0 == 2) { + this.anInt3681 = arg1.g2(); + } else if (arg0 == 3) { + this.anInt3667 = arg1.g2(); + } else if (arg0 == 4) { + this.anInt3678 = arg1.g2(); + } else if (arg0 == 5) { + this.anInt3675 = arg1.g2(); + } else if (arg0 == 6) { + this.anInt3672 = arg1.g2(); + } else if (arg0 == 7) { + this.anInt3673 = arg1.g2(); + } + } + + @OriginalMember(owner = "client!mc", name = "i", descriptor = "(I)V") + private void method2908() { + @Pc(8) Random local8 = new Random((long) this.anInt3677); + this.anInt3670 = 4096 / this.anInt3677; + this.anInt3671 = this.anInt3672 / 2; + this.anIntArrayArray26 = new int[this.anInt3677][this.anInt3685 + 1]; + @Pc(34) int local34 = this.anInt3670 / 2; + this.anIntArray352 = new int[this.anInt3677 + 1]; + this.anIntArrayArray27 = new int[this.anInt3677][this.anInt3685]; + this.anInt3679 = 4096 / this.anInt3685; + this.anIntArray352[0] = 0; + @Pc(64) int local64 = this.anInt3679 / 2; + for (@Pc(66) int local66 = 0; local66 < this.anInt3677; local66++) { + @Pc(82) int local82; + @Pc(94) int local94; + if (local66 > 0) { + local82 = this.anInt3670; + local94 = (Static171.method3219(4096, local8) - 2048) * this.anInt3667 >> 12; + @Pc(102) int local102 = local82 + (local94 * local34 >> 12); + this.anIntArray352[local66] = this.anIntArray352[local66 - 1] + local102; } - local103 = this.aByteArray10[local68 & 0xFF] & 0xFF; - if (this.aBoolean44) { - for (local105 = 0; local105 < Static10.anInt4457; local105++) { - local115 = this.anInt646 * Static173.anIntArray367[local105]; - local129 = this.method590(local40 * local115 >> 12, local103, local77, local54, local60, local85); - local129 = local27 * local129 >> 12; - arg1[local105] = (local129 >> 1) + 2048; + this.anIntArrayArray26[local66][0] = 0; + for (local82 = 0; local82 < this.anInt3685; local82++) { + if (local82 > 0) { + local94 = this.anInt3679; + @Pc(150) int local150 = (Static171.method3219(4096, local8) - 2048) * this.anInt3681 >> 12; + local94 += local64 * local150 >> 12; + this.anIntArrayArray26[local66][local82] = this.anIntArrayArray26[local66][local82 - 1] + local94; + } + this.anIntArrayArray27[local66][local82] = this.anInt3673 <= 0 ? 4096 : 4096 - Static171.method3219(this.anInt3673, local8); + } + this.anIntArrayArray26[local66][this.anInt3685] = 4096; + } + this.anIntArray352[this.anInt3677] = 4096; + } + + @OriginalMember(owner = "client!mc", name = "a", descriptor = "(IB)[I") + @Override + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(11) int[] local11 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(18) int local18 = 0; + @Pc(25) int local25; + for (local25 = Texture.heightFractions[arg0] + this.anInt3675; local25 < 0; local25 += 4096) { + } + while (local25 > 4096) { + local25 -= 4096; + } + while (this.anInt3677 > local18 && local25 >= this.anIntArray352[local18]) { + local18++; + } + @Pc(60) int local60 = local18 - 1; + @Pc(65) int local65 = this.anIntArray352[local18]; + @Pc(74) boolean local74 = (local18 & 0x1) == 0; + @Pc(81) int local81 = this.anIntArray352[local18 - 1]; + if (local81 + this.anInt3671 < local25 && local65 - this.anInt3671 > local25) { + for (@Pc(100) int local100 = 0; local100 < Texture.width; local100++) { + @Pc(105) int local105 = 0; + @Pc(114) int local114 = local74 ? this.anInt3678 : -this.anInt3678; + @Pc(126) int local126; + for (local126 = Texture.widthFractions[local100] + (this.anInt3679 * local114 >> 12); local126 < 0; local126 += 4096) { + } + while (local126 > 4096) { + local126 -= 4096; + } + while (this.anInt3685 > local105 && local126 >= this.anIntArrayArray26[local60][local105]) { + local105++; + } + @Pc(172) int local172 = this.anIntArrayArray26[local60][local105]; + @Pc(176) int local176 = local105 - 1; + @Pc(183) int local183 = this.anIntArrayArray26[local60][local176]; + if (local183 + this.anInt3671 < local126 && local172 - this.anInt3671 > local126) { + local11[local100] = this.anIntArrayArray27[local60][local176]; + } else { + local11[local100] = 0; + } } } else { - for (local105 = 0; local105 < Static10.anInt4457; local105++) { - local115 = this.anInt646 * Static173.anIntArray367[local105]; - local129 = this.method590(local40 * local115 >> 12, local103, local77, local54, local60, local85); - arg1[local105] = local27 * local129 >> 12; - } - } - return; - } - local27 = this.aShortArray4[0]; - if (local27 > 8 || local27 < -8) { - local40 = this.aShortArray3[0] << 12; - local47 = local40 * this.anInt641 >> 12; - local54 = this.anInt646 * local40 >> 12; - local60 = local12 * local40 >> 12; - local64 = local60 >> 12; - local68 = local64 + 1; - local77 = this.aByteArray10[local64 & 0xFF] & 0xFF; - @Pc(81) int local81 = local60 & 0xFFF; - local85 = MonochromeImageCache.anIntArray1[local81]; - if (local68 >= local47) { - local68 = 0; - } - local103 = this.aByteArray10[local68 & 0xFF] & 0xFF; - for (local105 = 0; local105 < Static10.anInt4457; local105++) { - local115 = Static173.anIntArray367[local105] * this.anInt646; - local129 = this.method590(local115 * local40 >> 12, local103, local77, local54, local81, local85); - arg1[local105] = local129 * local27 >> 12; + ArrayUtils.fill(local11, 0, Texture.width, 0); } } - for (@Pc(142) int local142 = 1; local142 < this.anInt642; local142++) { - local27 = this.aShortArray4[local142]; - if (local27 > 8 || local27 < -8) { - local40 = this.aShortArray3[local142] << 12; - local60 = local40 * local12 >> 12; - local64 = local60 >> 12; - local77 = this.aByteArray10[local64 & 0xFF] & 0xFF; - local54 = this.anInt646 * local40 >> 12; - local68 = local64 + 1; - local60 &= 0xFFF; - local85 = MonochromeImageCache.anIntArray1[local60]; - local47 = this.anInt641 * local40 >> 12; - if (local68 >= local47) { - local68 = 0; - } - local103 = this.aByteArray10[local68 & 0xFF] & 0xFF; - if (this.aBoolean44 && local142 == this.anInt642 - 1) { - for (local105 = 0; local105 < Static10.anInt4457; local105++) { - local115 = Static173.anIntArray367[local105] * this.anInt646; - local129 = this.method590(local40 * local115 >> 12, local103, local77, local54, local60, local85); - local129 = (local27 * local129 >> 12) + arg1[local105]; - arg1[local105] = (local129 >> 1) + 2048; - } - } else { - for (local105 = 0; local105 < Static10.anInt4457; local105++) { - local115 = Static173.anIntArray367[local105] * this.anInt646; - local129 = this.method590(local115 * local40 >> 12, local103, local77, local54, local60, local85); - arg1[local105] += local129 * local27 >> 12; - } - } - } - } - } - - @OriginalMember(owner = "client!bi", name = "e", descriptor = "(I)V") - @Override - public final void method4630() { - this.aByteArray10 = Static89.method1837(this.anInt650); - this.method589(); - for (@Pc(15) int local15 = this.anInt642 - 1; local15 >= 1; local15--) { - @Pc(23) short local23 = this.aShortArray4[local15]; - if (local23 > 8 || local23 < -8) { - break; - } - this.anInt642--; - } - } - - @OriginalMember(owner = "client!bi", name = "a", descriptor = "(ILclient!wa;Z)V") - @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { - if (arg0 == 0) { - this.aBoolean44 = arg1.g1() == 1; - } else if (arg0 == 1) { - this.anInt642 = arg1.g1(); - } else if (arg0 == 2) { - this.anInt648 = arg1.g2b(); - if (this.anInt648 < 0) { - this.aShortArray4 = new short[this.anInt642]; - for (@Pc(93) int local93 = 0; local93 < this.anInt642; local93++) { - this.aShortArray4[local93] = (short) arg1.g2b(); - } - } - } else if (arg0 == 3) { - this.anInt646 = this.anInt641 = arg1.g1(); - } else if (arg0 == 4) { - this.anInt650 = arg1.g1(); - } else if (arg0 == 5) { - this.anInt646 = arg1.g1(); - } else if (arg0 == 6) { - this.anInt641 = arg1.g1(); - } - } - - @OriginalMember(owner = "client!bi", name = "b", descriptor = "(Z)V") - private void method589() { - @Pc(21) int local21; - if (this.anInt648 > 0) { - this.aShortArray4 = new short[this.anInt642]; - this.aShortArray3 = new short[this.anInt642]; - for (local21 = 0; local21 < this.anInt642; local21++) { - this.aShortArray4[local21] = (short) (Math.pow((double) ((float) this.anInt648 / 4096.0F), (double) local21) * 4096.0D); - this.aShortArray3[local21] = (short) Math.pow(2.0D, (double) local21); - } - } else if (this.aShortArray4 != null && this.aShortArray4.length == this.anInt642) { - this.aShortArray3 = new short[this.anInt642]; - for (local21 = 0; local21 < this.anInt642; local21++) { - this.aShortArray3[local21] = (short) Math.pow(2.0D, (double) local21); - } - } - } - - @OriginalMember(owner = "client!bi", name = "a", descriptor = "(IIIIIII)I") - private int method590(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(5) int arg4, @OriginalArg(6) int arg5) { - @Pc(15) int local15 = arg4 - 4096; - @Pc(19) int local19 = arg0 >> 12; - @Pc(23) int local23 = local19 + 1; - @Pc(27) int local27 = local19 & 0xFF; - if (local23 >= arg3) { - local23 = 0; - } - @Pc(40) int local40 = arg0 & 0xFFF; - @Pc(50) int local50 = this.aByteArray10[local27 + arg2] & 0x3; - @Pc(54) int local54 = MonochromeImageCache.anIntArray1[local40]; - @Pc(70) int local70; - if (local50 > 1) { - local70 = local50 == 2 ? local40 - arg4 : -local40 + -arg4; - } else { - local70 = local50 == 0 ? arg4 + local40 : -local40 + arg4; - } - local23 &= 0xFF; - @Pc(92) int local92 = local40 - 4096; - local50 = this.aByteArray10[arg2 + local23] & 0x3; - @Pc(118) int local118; - if (local50 <= 1) { - local118 = local50 == 0 ? arg4 + local92 : -local92 + arg4; - } else { - local118 = local50 == 2 ? local92 - arg4 : -local92 + -arg4; - } - local50 = this.aByteArray10[local27 + arg1] & 0x3; - @Pc(155) int local155 = local70 + ((local118 - local70) * local54 >> 12); - if (local50 > 1) { - local70 = local50 == 2 ? local40 - local15 : -local40 - local15; - } else { - local70 = local50 == 0 ? local40 + local15 : local15 + -local40; - } - local50 = this.aByteArray10[arg1 + local23] & 0x3; - if (local50 > 1) { - local118 = local50 == 2 ? local92 - local15 : -local15 + -local92; - } else { - local118 = local50 == 0 ? local92 + local15 : local15 + -local92; - } - @Pc(237) int local237 = local70 + ((local118 - local70) * local54 >> 12); - return local155 + (arg5 * (local237 - local155) >> 12); - } - - @OriginalMember(owner = "client!bi", name = "a", descriptor = "(IB)[I") - @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(17) int[] local17 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - this.method584(arg0, local17); - } - return local17; + return local11; } } diff --git a/client/src/main/java/rt4/TextureOp5.java b/client/src/main/java/rt4/TextureOp5.java index ffbd630..32330da 100644 --- a/client/src/main/java/rt4/TextureOp5.java +++ b/client/src/main/java/rt4/TextureOp5.java @@ -5,79 +5,137 @@ import org.openrs2.deob.annotation.OriginalClass; import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; -@OriginalClass("client!bl") +@OriginalClass("client!nm") public final class TextureOp5 extends TextureOp { - @OriginalMember(owner = "client!bl", name = "", descriptor = "()V") + @OriginalMember(owner = "client!nm", name = "V", descriptor = "I") + private int anInt4221 = 1; + + @OriginalMember(owner = "client!nm", name = "Z", descriptor = "I") + private int anInt4223 = 1; + + @OriginalMember(owner = "client!nm", name = "", descriptor = "()V") public TextureOp5() { - super(3, false); + super(1, false); } - @OriginalMember(owner = "client!bl", name = "b", descriptor = "(II)[[I") + @OriginalMember(owner = "client!nm", name = "a", descriptor = "(IB)[I") @Override - public final int[][] method4638(@OriginalArg(1) int arg0) { - @Pc(16) int[][] local16 = this.aClass103_41.method3173(arg0); - if (this.aClass103_41.aBoolean195) { - @Pc(27) int[] local27 = this.method4624(2, arg0); - @Pc(33) int[][] local33 = this.method4634(arg0, 0); - @Pc(39) int[][] local39 = this.method4634(arg0, 1); - @Pc(43) int[] local43 = local16[2]; - @Pc(47) int[] local47 = local16[1]; - @Pc(51) int[] local51 = local33[0]; - @Pc(55) int[] local55 = local33[1]; - @Pc(59) int[] local59 = local16[0]; - @Pc(63) int[] local63 = local39[0]; - @Pc(67) int[] local67 = local33[2]; - @Pc(71) int[] local71 = local39[2]; - @Pc(75) int[] local75 = local39[1]; - for (@Pc(77) int local77 = 0; local77 < Static10.anInt4457; local77++) { - @Pc(88) int local88 = local27[local77]; - if (local88 == 4096) { - local59[local77] = local51[local77]; - local47[local77] = local55[local77]; - local43[local77] = local67[local77]; - } else if (local88 == 0) { - local59[local77] = local63[local77]; - local47[local77] = local75[local77]; - local43[local77] = local71[local77]; - } else { - @Pc(99) int local99 = 4096 - local88; - local59[local77] = local99 * local63[local77] + local88 * local51[local77] >> 12; - local47[local77] = local99 * local75[local77] + local55[local77] * local88 >> 12; - local43[local77] = local71[local77] * local99 + local67[local77] * local88 >> 12; + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(19) int[] local19 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(31) int local31 = this.anInt4223 + this.anInt4223 + 1; + @Pc(35) int local35 = 65536 / local31; + @Pc(43) int local43 = this.anInt4221 + this.anInt4221 + 1; + @Pc(47) int local47 = 65536 / local43; + @Pc(50) int[][] local50 = new int[local31][]; + @Pc(56) int local56; + for (local56 = arg0 - this.anInt4223; local56 <= arg0 + this.anInt4223; local56++) { + @Pc(75) int[] local75 = this.getChildMonochromeOutput(0, local56 & Texture.heightMask); + @Pc(78) int[] local78 = new int[Texture.width]; + @Pc(80) int local80 = 0; + @Pc(84) int local84; + for (local84 = -this.anInt4221; local84 <= this.anInt4221; local84++) { + local80 += local75[local84 & Texture.widthMask]; } + local84 = 0; + while (Texture.width > local84) { + local78[local84] = local47 * local80 >> 16; + local80 -= local75[Texture.widthMask & local84 - this.anInt4221]; + local84++; + local80 += local75[Texture.widthMask & this.anInt4221 + local84]; + } + local50[this.anInt4223 + local56 - arg0] = local78; + } + for (local56 = 0; local56 < Texture.width; local56++) { + @Pc(169) int local169 = 0; + for (@Pc(171) int local171 = 0; local171 < local31; local171++) { + local169 += local50[local171][local56]; + } + local19[local56] = local35 * local169 >> 16; } } - return local16; + return local19; } - @OriginalMember(owner = "client!bl", name = "a", descriptor = "(ILclient!wa;Z)V") + @OriginalMember(owner = "client!nm", name = "b", descriptor = "(II)[[I") @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + public final int[][] getColorOutput(@OriginalArg(1) int arg0) { + @Pc(13) int[][] local13 = this.colorImageCache.get(arg0); + if (this.colorImageCache.invalid) { + @Pc(30) int local30 = this.anInt4221 + this.anInt4221 + 1; + @Pc(34) int local34 = 65536 / local30; + @Pc(42) int local42 = this.anInt4223 + this.anInt4223 + 1; + @Pc(46) int local46 = 65536 / local42; + @Pc(49) int[][][] local49 = new int[local42][][]; + @Pc(70) int local70; + @Pc(72) int local72; + @Pc(78) int local78; + for (@Pc(54) int local54 = arg0 - this.anInt4223; local54 <= this.anInt4223 + arg0; local54++) { + @Pc(68) int[][] local68 = this.getChildColorOutput(Texture.heightMask & local54, 0); + local70 = 0; + local72 = 0; + @Pc(76) int[][] local76 = new int[3][Texture.width]; + local78 = 0; + @Pc(82) int[] local82 = local68[0]; + @Pc(86) int[] local86 = local68[1]; + @Pc(90) int[] local90 = local68[2]; + for (@Pc(94) int local94 = -this.anInt4221; local94 <= this.anInt4221; local94++) { + @Pc(102) int local102 = local94 & Texture.widthMask; + local72 += local86[local102]; + local70 += local82[local102]; + local78 += local90[local102]; + } + @Pc(127) int[] local127 = local76[2]; + @Pc(131) int[] local131 = local76[0]; + @Pc(135) int[] local135 = local76[1]; + @Pc(137) int local137 = 0; + while (Texture.width > local137) { + local131[local137] = local70 * local34 >> 16; + local135[local137] = local72 * local34 >> 16; + local127[local137] = local34 * local78 >> 16; + @Pc(172) int local172 = Texture.widthMask & local137 - this.anInt4221; + local78 -= local90[local172]; + local137++; + local70 -= local82[local172]; + local72 -= local86[local172]; + @Pc(198) int local198 = this.anInt4221 + local137 & Texture.widthMask; + local78 += local90[local198]; + local72 += local86[local198]; + local70 += local82[local198]; + } + local49[this.anInt4223 + local54 - arg0] = local76; + } + @Pc(235) int[] local235 = local13[0]; + @Pc(239) int[] local239 = local13[1]; + @Pc(243) int[] local243 = local13[2]; + for (local70 = 0; local70 < Texture.width; local70++) { + local78 = 0; + local72 = 0; + @Pc(258) int local258 = 0; + for (@Pc(260) int local260 = 0; local260 < local42; local260++) { + @Pc(271) int[][] local271 = local49[local260]; + local258 += local271[2][local70]; + local78 += local271[1][local70]; + local72 += local271[0][local70]; + } + local235[local70] = local46 * local72 >> 16; + local239[local70] = local46 * local78 >> 16; + local243[local70] = local258 * local46 >> 16; + } + } + return local13; + } + + @OriginalMember(owner = "client!nm", name = "a", descriptor = "(ILclient!wa;Z)V") + @Override + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { if (arg0 == 0) { - this.aBoolean309 = arg1.g1() == 1; + this.anInt4221 = arg1.g1(); + } else if (arg0 == 1) { + this.anInt4223 = arg1.g1(); + } else if (arg0 == 2) { + this.monochrome = arg1.g1() == 1; } } - - @OriginalMember(owner = "client!bl", name = "a", descriptor = "(IB)[I") - @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(11) int[] local11 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(30) int[] local30 = this.method4624(0, arg0); - @Pc(36) int[] local36 = this.method4624(1, arg0); - @Pc(42) int[] local42 = this.method4624(2, arg0); - for (@Pc(44) int local44 = 0; local44 < Static10.anInt4457; local44++) { - @Pc(55) int local55 = local42[local44]; - if (local55 == 4096) { - local11[local44] = local30[local44]; - } else if (local55 == 0) { - local11[local44] = local36[local44]; - } else { - local11[local44] = local55 * local30[local44] + (4096 - local55) * local36[local44] >> 12; - } - } - } - return local11; - } } diff --git a/client/src/main/java/rt4/TextureOp6.java b/client/src/main/java/rt4/TextureOp6.java deleted file mode 100644 index d8915fe..0000000 --- a/client/src/main/java/rt4/TextureOp6.java +++ /dev/null @@ -1,110 +0,0 @@ -package rt4; - -import org.openrs2.deob.annotation.OriginalArg; -import org.openrs2.deob.annotation.OriginalClass; -import org.openrs2.deob.annotation.OriginalMember; -import org.openrs2.deob.annotation.Pc; - -@OriginalClass("client!d") -public final class TextureOp6 extends TextureOp { - - @OriginalMember(owner = "client!d", name = "U", descriptor = "[I") - private int[] anIntArray86; - - @OriginalMember(owner = "client!d", name = "W", descriptor = "[I") - private int[] anIntArray87; - - @OriginalMember(owner = "client!d", name = "Q", descriptor = "I") - private int anInt1234 = 0; - - @OriginalMember(owner = "client!d", name = "P", descriptor = "I") - private int anInt1233 = 10; - - @OriginalMember(owner = "client!d", name = "bb", descriptor = "I") - private int anInt1240 = 2048; - - @OriginalMember(owner = "client!d", name = "", descriptor = "()V") - public TextureOp6() { - super(0, true); - } - - @OriginalMember(owner = "client!d", name = "e", descriptor = "(I)V") - @Override - public final void method4630() { - this.method991(); - } - - @OriginalMember(owner = "client!d", name = "h", descriptor = "(I)V") - private void method991() { - @Pc(7) int local7 = 0; - this.anIntArray87 = new int[this.anInt1233 + 1]; - @Pc(23) int local23 = 4096 / this.anInt1233; - this.anIntArray86 = new int[this.anInt1233 + 1]; - @Pc(37) int local37 = this.anInt1240 * local23 >> 12; - for (@Pc(39) int local39 = 0; local39 < this.anInt1233; local39++) { - this.anIntArray86[local39] = local7; - this.anIntArray87[local39] = local7 + local37; - local7 += local23; - } - this.anIntArray86[this.anInt1233] = 4096; - this.anIntArray87[this.anInt1233] = this.anIntArray87[0] + 4096; - } - - @OriginalMember(owner = "client!d", name = "a", descriptor = "(ILclient!wa;Z)V") - @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { - if (arg0 == 0) { - this.anInt1233 = arg1.g1(); - } else if (arg0 == 1) { - this.anInt1240 = arg1.g2(); - } else if (arg0 == 2) { - this.anInt1234 = arg1.g1(); - } - } - - @OriginalMember(owner = "client!d", name = "a", descriptor = "(IB)[I") - @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(19) int[] local19 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(28) int local28 = Static10.anIntArray153[arg0]; - @Pc(36) int local36; - if (this.anInt1234 == 0) { - @Pc(34) short local34 = 0; - for (local36 = 0; local36 < this.anInt1233; local36++) { - if (this.anIntArray86[local36] <= local28 && local28 < this.anIntArray86[local36 + 1]) { - if (local28 < this.anIntArray87[local36]) { - local34 = 4096; - } - break; - } - } - ArrayUtils.fill(local19, 0, Static10.anInt4457, local34); - } else { - for (@Pc(85) int local85 = 0; local85 < Static10.anInt4457; local85++) { - @Pc(96) int local96 = Static173.anIntArray367[local85]; - local36 = 0; - @Pc(101) int local101 = this.anInt1234; - if (local101 == 1) { - local36 = local96; - } else if (local101 == 2) { - local36 = (local96 + local28 - 4096 >> 1) + 2048; - } else if (local101 == 3) { - local36 = (local96 - local28 >> 1) + 2048; - } - @Pc(143) short local143 = 0; - for (local101 = 0; local101 < this.anInt1233; local101++) { - if (this.anIntArray86[local101] <= local36 && local36 < this.anIntArray86[local101 + 1]) { - if (local36 < this.anIntArray87[local101]) { - local143 = 4096; - } - break; - } - } - local19[local85] = local143; - } - } - } - return local19; - } -} diff --git a/client/src/main/java/rt4/TextureOp8.java b/client/src/main/java/rt4/TextureOp8.java deleted file mode 100644 index f07975d..0000000 --- a/client/src/main/java/rt4/TextureOp8.java +++ /dev/null @@ -1,80 +0,0 @@ -package rt4; - -import org.openrs2.deob.annotation.OriginalArg; -import org.openrs2.deob.annotation.OriginalClass; -import org.openrs2.deob.annotation.OriginalMember; -import org.openrs2.deob.annotation.Pc; - -@OriginalClass("client!f") -public final class TextureOp8 extends TextureOp { - - @OriginalMember(owner = "client!f", name = "R", descriptor = "I") - private int anInt1935 = 204; - - @OriginalMember(owner = "client!f", name = "Y", descriptor = "I") - private int anInt1940 = 1; - - @OriginalMember(owner = "client!f", name = "Q", descriptor = "I") - private int anInt1934 = 1; - - @OriginalMember(owner = "client!f", name = "", descriptor = "()V") - public TextureOp8() { - super(0, true); - } - - @OriginalMember(owner = "client!f", name = "a", descriptor = "(ILclient!wa;Z)V") - @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { - if (arg0 == 0) { - this.anInt1934 = arg1.g1(); - } else if (arg0 == 1) { - this.anInt1940 = arg1.g1(); - } else if (arg0 == 2) { - this.anInt1935 = arg1.g2(); - } - } - - @OriginalMember(owner = "client!f", name = "a", descriptor = "(IB)[I") - @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(19) int[] local19 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - for (@Pc(25) int local25 = 0; local25 < Static10.anInt4457; local25++) { - @Pc(32) int local32 = Static173.anIntArray367[local25]; - @Pc(36) int local36 = Static10.anIntArray153[arg0]; - @Pc(43) int local43 = this.anInt1934 * local32 >> 12; - @Pc(50) int local50 = local36 * this.anInt1940 >> 12; - @Pc(60) int local60 = this.anInt1934 * (local32 % (4096 / this.anInt1934)); - @Pc(70) int local70 = local36 % (4096 / this.anInt1940) * this.anInt1940; - if (this.anInt1935 > local70) { - for (local43 -= local50; local43 < 0; local43 += 4) { - } - while (local43 > 3) { - local43 -= 4; - } - if (local43 != 1) { - local19[local25] = 0; - continue; - } - if (this.anInt1935 > local60) { - local19[local25] = 0; - continue; - } - } - if (local60 < this.anInt1935) { - for (local43 -= local50; local43 < 0; local43 += 4) { - } - while (local43 > 3) { - local43 -= 4; - } - if (local43 > 0) { - local19[local25] = 0; - continue; - } - } - local19[local25] = 4096; - } - } - return local19; - } -} diff --git a/client/src/main/java/rt4/TextureOpBinary.java b/client/src/main/java/rt4/TextureOpBinary.java index 024c043..6449b18 100644 --- a/client/src/main/java/rt4/TextureOpBinary.java +++ b/client/src/main/java/rt4/TextureOpBinary.java @@ -9,10 +9,10 @@ import org.openrs2.deob.annotation.Pc; public final class TextureOpBinary extends TextureOp { @OriginalMember(owner = "client!ca", name = "T", descriptor = "I") - private int anInt861 = 4096; + private int maxValue = 4096; @OriginalMember(owner = "client!ca", name = "P", descriptor = "I") - private int anInt857 = 0; + private int minValue = 0; @OriginalMember(owner = "client!ca", name = "", descriptor = "()V") public TextureOpBinary() { @@ -21,13 +21,13 @@ public final class TextureOpBinary extends TextureOp { @OriginalMember(owner = "client!ca", name = "a", descriptor = "(IB)[I") @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(19) int[] local19 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(29) int[] local29 = this.method4624(0, arg0); - for (@Pc(31) int local31 = 0; local31 < Static10.anInt4457; local31++) { + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(19) int[] local19 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(29) int[] local29 = this.getChildMonochromeOutput(0, arg0); + for (@Pc(31) int local31 = 0; local31 < Texture.width; local31++) { @Pc(38) int local38 = local29[local31]; - local19[local31] = this.anInt857 <= local38 && local38 <= this.anInt861 ? 4096 : 0; + local19[local31] = this.minValue <= local38 && local38 <= this.maxValue ? 4096 : 0; } } return local19; @@ -35,11 +35,11 @@ public final class TextureOpBinary extends TextureOp { @OriginalMember(owner = "client!ca", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { if (arg0 == 0) { - this.anInt857 = arg1.g2(); + this.minValue = arg1.g2(); } else if (arg0 == 1) { - this.anInt861 = arg1.g2(); + this.maxValue = arg1.g2(); } } } diff --git a/client/src/main/java/rt4/TextureOp2.java b/client/src/main/java/rt4/TextureOpClamp.java similarity index 73% rename from client/src/main/java/rt4/TextureOp2.java rename to client/src/main/java/rt4/TextureOpClamp.java index db7d783..a77e46c 100644 --- a/client/src/main/java/rt4/TextureOp2.java +++ b/client/src/main/java/rt4/TextureOpClamp.java @@ -6,7 +6,7 @@ import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; @OriginalClass("client!aj") -public final class TextureOp2 extends TextureOp { +public final class TextureOpClamp extends TextureOp { @OriginalMember(owner = "client!aj", name = "V", descriptor = "I") private int anInt148 = 0; @@ -15,35 +15,35 @@ public final class TextureOp2 extends TextureOp { private int anInt151 = 4096; @OriginalMember(owner = "client!aj", name = "", descriptor = "()V") - public TextureOp2() { + public TextureOpClamp() { super(1, false); } @OriginalMember(owner = "client!aj", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { if (arg0 == 0) { this.anInt148 = arg1.g2(); } else if (arg0 == 1) { this.anInt151 = arg1.g2(); } else if (arg0 == 2) { - this.aBoolean309 = arg1.g1() == 1; + this.monochrome = arg1.g1() == 1; } } @OriginalMember(owner = "client!aj", name = "b", descriptor = "(II)[[I") @Override - public final int[][] method4638(@OriginalArg(1) int arg0) { - @Pc(22) int[][] local22 = this.aClass103_41.method3173(arg0); - if (this.aClass103_41.aBoolean195) { - @Pc(32) int[][] local32 = this.method4634(arg0, 0); + public final int[][] getColorOutput(@OriginalArg(1) int arg0) { + @Pc(22) int[][] local22 = this.colorImageCache.get(arg0); + if (this.colorImageCache.invalid) { + @Pc(32) int[][] local32 = this.getChildColorOutput(arg0, 0); @Pc(36) int[] local36 = local32[1]; @Pc(40) int[] local40 = local32[2]; @Pc(44) int[] local44 = local32[0]; @Pc(48) int[] local48 = local22[0]; @Pc(52) int[] local52 = local22[1]; @Pc(56) int[] local56 = local22[2]; - for (@Pc(58) int local58 = 0; local58 < Static10.anInt4457; local58++) { + for (@Pc(58) int local58 = 0; local58 < Texture.width; local58++) { @Pc(69) int local69 = local36[local58]; @Pc(73) int local73 = local44[local58]; @Pc(77) int local77 = local40[local58]; @@ -75,11 +75,11 @@ public final class TextureOp2 extends TextureOp { @OriginalMember(owner = "client!aj", name = "a", descriptor = "(IB)[I") @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(19) int[] local19 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(29) int[] local29 = this.method4624(0, arg0); - for (@Pc(31) int local31 = 0; local31 < Static10.anInt4457; local31++) { + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(19) int[] local19 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(29) int[] local29 = this.getChildMonochromeOutput(0, arg0); + for (@Pc(31) int local31 = 0; local31 < Texture.width; local31++) { @Pc(38) int local38 = local29[local31]; if (this.anInt148 > local38) { local19[local31] = this.anInt148; diff --git a/client/src/main/java/rt4/TextureOpColorFill.java b/client/src/main/java/rt4/TextureOpColorFill.java index 8b5812b..8db89e7 100644 --- a/client/src/main/java/rt4/TextureOpColorFill.java +++ b/client/src/main/java/rt4/TextureOpColorFill.java @@ -9,18 +9,18 @@ import org.openrs2.deob.annotation.Pc; public final class TextureOpColorFill extends TextureOp { @OriginalMember(owner = "client!fm", name = "P", descriptor = "I") - private int anInt2073; + private int red; @OriginalMember(owner = "client!fm", name = "X", descriptor = "I") - private int anInt2078; + private int green; @OriginalMember(owner = "client!fm", name = "Z", descriptor = "I") - private int anInt2080; + private int blue; @OriginalMember(owner = "client!fm", name = "", descriptor = "(I)V") private TextureOpColorFill(@OriginalArg(0) int arg0) { super(0, false); - this.method1595(arg0); + this.setColor(arg0); } @OriginalMember(owner = "client!fm", name = "", descriptor = "()V") @@ -29,24 +29,24 @@ public final class TextureOpColorFill extends TextureOp { } @OriginalMember(owner = "client!fm", name = "a", descriptor = "(BI)V") - private void method1595(@OriginalArg(1) int arg0) { - this.anInt2078 = arg0 >> 4 & 0xFF0; - this.anInt2080 = (arg0 & 0xFF) << 4; - this.anInt2073 = arg0 >> 12 & 0xFF0; + private void setColor(@OriginalArg(1) int arg0) { + this.green = arg0 >> 4 & 0xFF0; + this.blue = (arg0 & 0xFF) << 4; + this.red = arg0 >> 12 & 0xFF0; } @OriginalMember(owner = "client!fm", name = "b", descriptor = "(II)[[I") @Override - public final int[][] method4638(@OriginalArg(1) int arg0) { - @Pc(22) int[][] local22 = this.aClass103_41.method3173(arg0); - if (this.aClass103_41.aBoolean195) { + public final int[][] getColorOutput(@OriginalArg(1) int arg0) { + @Pc(22) int[][] local22 = this.colorImageCache.get(arg0); + if (this.colorImageCache.invalid) { @Pc(31) int[] local31 = local22[0]; @Pc(35) int[] local35 = local22[1]; @Pc(39) int[] local39 = local22[2]; - for (@Pc(41) int local41 = 0; local41 < Static10.anInt4457; local41++) { - local31[local41] = this.anInt2073; - local35[local41] = this.anInt2078; - local39[local41] = this.anInt2080; + for (@Pc(41) int local41 = 0; local41 < Texture.width; local41++) { + local31[local41] = this.red; + local35[local41] = this.green; + local39[local41] = this.blue; } } return local22; @@ -54,9 +54,9 @@ public final class TextureOpColorFill extends TextureOp { @OriginalMember(owner = "client!fm", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { if (arg0 == 0) { - this.method1595(arg1.g3()); + this.setColor(arg1.g3()); } } } diff --git a/client/src/main/java/rt4/TextureOpColorGradient.java b/client/src/main/java/rt4/TextureOpColorGradient.java index 062a37a..24fe79e 100644 --- a/client/src/main/java/rt4/TextureOpColorGradient.java +++ b/client/src/main/java/rt4/TextureOpColorGradient.java @@ -9,10 +9,10 @@ import org.openrs2.deob.annotation.Pc; public final class TextureOpColorGradient extends TextureOp { @OriginalMember(owner = "client!um", name = "R", descriptor = "[[I") - private int[][] anIntArrayArray39; + private int[][] samples; @OriginalMember(owner = "client!um", name = "bb", descriptor = "[I") - private final int[] anIntArray494 = new int[257]; + private final int[] colors = new int[257]; @OriginalMember(owner = "client!um", name = "", descriptor = "()V") public TextureOpColorGradient() { @@ -21,202 +21,202 @@ public final class TextureOpColorGradient extends TextureOp { @OriginalMember(owner = "client!um", name = "e", descriptor = "(I)V") @Override - public final void method4630() { - if (this.anIntArrayArray39 == null) { - this.method4390(1); + public final void postDecode() { + if (this.samples == null) { + this.setPreset(1); } - this.method4391(); + this.interpolate(); } @OriginalMember(owner = "client!um", name = "a", descriptor = "(IZ)V") - private void method4390(@OriginalArg(0) int arg0) { + private void setPreset(@OriginalArg(0) int arg0) { if (arg0 == 0) { return; } if (arg0 == 1) { - this.anIntArrayArray39 = new int[2][4]; - this.anIntArrayArray39[0][1] = 0; - this.anIntArrayArray39[0][0] = 0; - this.anIntArrayArray39[1][0] = 4096; - this.anIntArrayArray39[0][3] = 0; - this.anIntArrayArray39[1][1] = 4096; - this.anIntArrayArray39[0][2] = 0; - this.anIntArrayArray39[1][2] = 4096; - this.anIntArrayArray39[1][3] = 4096; + this.samples = new int[2][4]; + this.samples[0][1] = 0; + this.samples[0][0] = 0; + this.samples[1][0] = 4096; + this.samples[0][3] = 0; + this.samples[1][1] = 4096; + this.samples[0][2] = 0; + this.samples[1][2] = 4096; + this.samples[1][3] = 4096; } else if (arg0 == 2) { - this.anIntArrayArray39 = new int[8][4]; - this.anIntArrayArray39[0][0] = 0; - this.anIntArrayArray39[1][0] = 2867; - this.anIntArrayArray39[2][0] = 3072; - this.anIntArrayArray39[0][2] = 2602; - this.anIntArrayArray39[3][0] = 3276; - this.anIntArrayArray39[0][3] = 2361; - this.anIntArrayArray39[1][3] = 1558; - this.anIntArrayArray39[4][0] = 3481; - this.anIntArrayArray39[5][0] = 3686; - this.anIntArrayArray39[2][3] = 1413; - this.anIntArrayArray39[3][3] = 947; - this.anIntArrayArray39[4][3] = 722; - this.anIntArrayArray39[6][0] = 3891; - this.anIntArrayArray39[1][2] = 1799; - this.anIntArrayArray39[7][0] = 4096; - this.anIntArrayArray39[5][3] = 1766; - this.anIntArrayArray39[2][2] = 1734; - this.anIntArrayArray39[3][2] = 1220; - this.anIntArrayArray39[4][2] = 963; - this.anIntArrayArray39[5][2] = 2152; - this.anIntArrayArray39[6][3] = 915; - this.anIntArrayArray39[7][3] = 1140; - this.anIntArrayArray39[0][1] = 2650; - this.anIntArrayArray39[6][2] = 1060; - this.anIntArrayArray39[1][1] = 2313; - this.anIntArrayArray39[2][1] = 2618; - this.anIntArrayArray39[3][1] = 2296; - this.anIntArrayArray39[4][1] = 2072; - this.anIntArrayArray39[7][2] = 1413; - this.anIntArrayArray39[5][1] = 2730; - this.anIntArrayArray39[6][1] = 2232; - this.anIntArrayArray39[7][1] = 1686; + this.samples = new int[8][4]; + this.samples[0][0] = 0; + this.samples[1][0] = 2867; + this.samples[2][0] = 3072; + this.samples[0][2] = 2602; + this.samples[3][0] = 3276; + this.samples[0][3] = 2361; + this.samples[1][3] = 1558; + this.samples[4][0] = 3481; + this.samples[5][0] = 3686; + this.samples[2][3] = 1413; + this.samples[3][3] = 947; + this.samples[4][3] = 722; + this.samples[6][0] = 3891; + this.samples[1][2] = 1799; + this.samples[7][0] = 4096; + this.samples[5][3] = 1766; + this.samples[2][2] = 1734; + this.samples[3][2] = 1220; + this.samples[4][2] = 963; + this.samples[5][2] = 2152; + this.samples[6][3] = 915; + this.samples[7][3] = 1140; + this.samples[0][1] = 2650; + this.samples[6][2] = 1060; + this.samples[1][1] = 2313; + this.samples[2][1] = 2618; + this.samples[3][1] = 2296; + this.samples[4][1] = 2072; + this.samples[7][2] = 1413; + this.samples[5][1] = 2730; + this.samples[6][1] = 2232; + this.samples[7][1] = 1686; } else if (arg0 == 3) { - this.anIntArrayArray39 = new int[7][4]; - this.anIntArrayArray39[0][0] = 0; - this.anIntArrayArray39[0][3] = 4096; - this.anIntArrayArray39[1][3] = 4096; - this.anIntArrayArray39[2][3] = 0; - this.anIntArrayArray39[1][0] = 663; - this.anIntArrayArray39[0][1] = 0; - this.anIntArrayArray39[3][3] = 0; - this.anIntArrayArray39[1][1] = 0; - this.anIntArrayArray39[2][0] = 1363; - this.anIntArrayArray39[2][1] = 0; - this.anIntArrayArray39[4][3] = 0; - this.anIntArrayArray39[5][3] = 4096; - this.anIntArrayArray39[6][3] = 4096; - this.anIntArrayArray39[3][0] = 2048; - this.anIntArrayArray39[4][0] = 2727; - this.anIntArrayArray39[5][0] = 3411; - this.anIntArrayArray39[6][0] = 4096; - this.anIntArrayArray39[3][1] = 4096; - this.anIntArrayArray39[4][1] = 4096; - this.anIntArrayArray39[5][1] = 4096; - this.anIntArrayArray39[6][1] = 0; - this.anIntArrayArray39[0][2] = 0; - this.anIntArrayArray39[1][2] = 4096; - this.anIntArrayArray39[2][2] = 4096; - this.anIntArrayArray39[3][2] = 4096; - this.anIntArrayArray39[4][2] = 0; - this.anIntArrayArray39[5][2] = 0; - this.anIntArrayArray39[6][2] = 0; + this.samples = new int[7][4]; + this.samples[0][0] = 0; + this.samples[0][3] = 4096; + this.samples[1][3] = 4096; + this.samples[2][3] = 0; + this.samples[1][0] = 663; + this.samples[0][1] = 0; + this.samples[3][3] = 0; + this.samples[1][1] = 0; + this.samples[2][0] = 1363; + this.samples[2][1] = 0; + this.samples[4][3] = 0; + this.samples[5][3] = 4096; + this.samples[6][3] = 4096; + this.samples[3][0] = 2048; + this.samples[4][0] = 2727; + this.samples[5][0] = 3411; + this.samples[6][0] = 4096; + this.samples[3][1] = 4096; + this.samples[4][1] = 4096; + this.samples[5][1] = 4096; + this.samples[6][1] = 0; + this.samples[0][2] = 0; + this.samples[1][2] = 4096; + this.samples[2][2] = 4096; + this.samples[3][2] = 4096; + this.samples[4][2] = 0; + this.samples[5][2] = 0; + this.samples[6][2] = 0; } else if (arg0 == 4) { - this.anIntArrayArray39 = new int[6][4]; - this.anIntArrayArray39[0][3] = 0; - this.anIntArrayArray39[0][0] = 0; - this.anIntArrayArray39[0][2] = 0; - this.anIntArrayArray39[1][0] = 1843; - this.anIntArrayArray39[1][2] = 0; - this.anIntArrayArray39[2][2] = 0; - this.anIntArrayArray39[1][3] = 1493; - this.anIntArrayArray39[2][3] = 2939; - this.anIntArrayArray39[3][3] = 3565; - this.anIntArrayArray39[3][2] = 1124; - this.anIntArrayArray39[4][3] = 4031; - this.anIntArrayArray39[0][1] = 0; - this.anIntArrayArray39[1][1] = 0; - this.anIntArrayArray39[5][3] = 4096; - this.anIntArrayArray39[4][2] = 3084; - this.anIntArrayArray39[2][0] = 2457; - this.anIntArrayArray39[2][1] = 0; - this.anIntArrayArray39[3][0] = 2781; - this.anIntArrayArray39[4][0] = 3481; - this.anIntArrayArray39[3][1] = 0; - this.anIntArrayArray39[4][1] = 546; - this.anIntArrayArray39[5][2] = 4096; - this.anIntArrayArray39[5][0] = 4096; - this.anIntArrayArray39[5][1] = 4096; + this.samples = new int[6][4]; + this.samples[0][3] = 0; + this.samples[0][0] = 0; + this.samples[0][2] = 0; + this.samples[1][0] = 1843; + this.samples[1][2] = 0; + this.samples[2][2] = 0; + this.samples[1][3] = 1493; + this.samples[2][3] = 2939; + this.samples[3][3] = 3565; + this.samples[3][2] = 1124; + this.samples[4][3] = 4031; + this.samples[0][1] = 0; + this.samples[1][1] = 0; + this.samples[5][3] = 4096; + this.samples[4][2] = 3084; + this.samples[2][0] = 2457; + this.samples[2][1] = 0; + this.samples[3][0] = 2781; + this.samples[4][0] = 3481; + this.samples[3][1] = 0; + this.samples[4][1] = 546; + this.samples[5][2] = 4096; + this.samples[5][0] = 4096; + this.samples[5][1] = 4096; } else if (arg0 == 5) { - this.anIntArrayArray39 = new int[16][4]; - this.anIntArrayArray39[0][3] = 321; - this.anIntArrayArray39[0][0] = 0; - this.anIntArrayArray39[0][2] = 192; - this.anIntArrayArray39[1][0] = 155; - this.anIntArrayArray39[1][3] = 562; - this.anIntArrayArray39[1][2] = 449; - this.anIntArrayArray39[2][0] = 389; - this.anIntArrayArray39[3][0] = 671; - this.anIntArrayArray39[2][2] = 690; - this.anIntArrayArray39[0][1] = 80; - this.anIntArrayArray39[1][1] = 321; - this.anIntArrayArray39[4][0] = 897; - this.anIntArrayArray39[3][2] = 995; - this.anIntArrayArray39[4][2] = 1397; - this.anIntArrayArray39[2][1] = 578; - this.anIntArrayArray39[2][3] = 803; - this.anIntArrayArray39[5][0] = 1175; - this.anIntArrayArray39[6][0] = 1368; - this.anIntArrayArray39[5][2] = 1429; - this.anIntArrayArray39[3][1] = 947; - this.anIntArrayArray39[7][0] = 1507; - this.anIntArrayArray39[4][1] = 1285; - this.anIntArrayArray39[6][2] = 1461; - this.anIntArrayArray39[8][0] = 1736; - this.anIntArrayArray39[3][3] = 1140; - this.anIntArrayArray39[9][0] = 2088; - this.anIntArrayArray39[7][2] = 1525; - this.anIntArrayArray39[4][3] = 1509; - this.anIntArrayArray39[5][1] = 1525; - this.anIntArrayArray39[6][1] = 1734; - this.anIntArrayArray39[5][3] = 1413; - this.anIntArrayArray39[8][2] = 1590; - this.anIntArrayArray39[10][0] = 2355; - this.anIntArrayArray39[9][2] = 2056; - this.anIntArrayArray39[7][1] = 1413; - this.anIntArrayArray39[11][0] = 2691; - this.anIntArrayArray39[12][0] = 3031; - this.anIntArrayArray39[6][3] = 1333; - this.anIntArrayArray39[10][2] = 2586; - this.anIntArrayArray39[11][2] = 3148; - this.anIntArrayArray39[13][0] = 3522; - this.anIntArrayArray39[14][0] = 3727; - this.anIntArrayArray39[7][3] = 1702; - this.anIntArrayArray39[8][1] = 1108; - this.anIntArrayArray39[9][1] = 1766; - this.anIntArrayArray39[10][1] = 2409; - this.anIntArrayArray39[15][0] = 4096; - this.anIntArrayArray39[12][2] = 3710; - this.anIntArrayArray39[11][1] = 3116; - this.anIntArrayArray39[13][2] = 3421; - this.anIntArrayArray39[12][1] = 3806; - this.anIntArrayArray39[13][1] = 3437; - this.anIntArrayArray39[14][1] = 3116; - this.anIntArrayArray39[15][1] = 2377; - this.anIntArrayArray39[8][3] = 2056; - this.anIntArrayArray39[9][3] = 2666; - this.anIntArrayArray39[14][2] = 3148; - this.anIntArrayArray39[15][2] = 2505; - this.anIntArrayArray39[10][3] = 3276; - this.anIntArrayArray39[11][3] = 3228; - this.anIntArrayArray39[12][3] = 3196; - this.anIntArrayArray39[13][3] = 3019; - this.anIntArrayArray39[14][3] = 3228; - this.anIntArrayArray39[15][3] = 2746; + this.samples = new int[16][4]; + this.samples[0][3] = 321; + this.samples[0][0] = 0; + this.samples[0][2] = 192; + this.samples[1][0] = 155; + this.samples[1][3] = 562; + this.samples[1][2] = 449; + this.samples[2][0] = 389; + this.samples[3][0] = 671; + this.samples[2][2] = 690; + this.samples[0][1] = 80; + this.samples[1][1] = 321; + this.samples[4][0] = 897; + this.samples[3][2] = 995; + this.samples[4][2] = 1397; + this.samples[2][1] = 578; + this.samples[2][3] = 803; + this.samples[5][0] = 1175; + this.samples[6][0] = 1368; + this.samples[5][2] = 1429; + this.samples[3][1] = 947; + this.samples[7][0] = 1507; + this.samples[4][1] = 1285; + this.samples[6][2] = 1461; + this.samples[8][0] = 1736; + this.samples[3][3] = 1140; + this.samples[9][0] = 2088; + this.samples[7][2] = 1525; + this.samples[4][3] = 1509; + this.samples[5][1] = 1525; + this.samples[6][1] = 1734; + this.samples[5][3] = 1413; + this.samples[8][2] = 1590; + this.samples[10][0] = 2355; + this.samples[9][2] = 2056; + this.samples[7][1] = 1413; + this.samples[11][0] = 2691; + this.samples[12][0] = 3031; + this.samples[6][3] = 1333; + this.samples[10][2] = 2586; + this.samples[11][2] = 3148; + this.samples[13][0] = 3522; + this.samples[14][0] = 3727; + this.samples[7][3] = 1702; + this.samples[8][1] = 1108; + this.samples[9][1] = 1766; + this.samples[10][1] = 2409; + this.samples[15][0] = 4096; + this.samples[12][2] = 3710; + this.samples[11][1] = 3116; + this.samples[13][2] = 3421; + this.samples[12][1] = 3806; + this.samples[13][1] = 3437; + this.samples[14][1] = 3116; + this.samples[15][1] = 2377; + this.samples[8][3] = 2056; + this.samples[9][3] = 2666; + this.samples[14][2] = 3148; + this.samples[15][2] = 2505; + this.samples[10][3] = 3276; + this.samples[11][3] = 3228; + this.samples[12][3] = 3196; + this.samples[13][3] = 3019; + this.samples[14][3] = 3228; + this.samples[15][3] = 2746; } else if (arg0 == 6) { - this.anIntArrayArray39 = new int[4][4]; - this.anIntArrayArray39[0][3] = 0; - this.anIntArrayArray39[0][2] = 4096; - this.anIntArrayArray39[1][3] = 0; - this.anIntArrayArray39[0][1] = 0; - this.anIntArrayArray39[2][3] = 0; - this.anIntArrayArray39[3][3] = 0; - this.anIntArrayArray39[0][0] = 2048; - this.anIntArrayArray39[1][1] = 4096; - this.anIntArrayArray39[1][0] = 2867; - this.anIntArrayArray39[2][1] = 4096; - this.anIntArrayArray39[1][2] = 4096; - this.anIntArrayArray39[2][2] = 4096; - this.anIntArrayArray39[3][1] = 4096; - this.anIntArrayArray39[2][0] = 3276; - this.anIntArrayArray39[3][2] = 0; - this.anIntArrayArray39[3][0] = 4096; + this.samples = new int[4][4]; + this.samples[0][3] = 0; + this.samples[0][2] = 4096; + this.samples[1][3] = 0; + this.samples[0][1] = 0; + this.samples[2][3] = 0; + this.samples[3][3] = 0; + this.samples[0][0] = 2048; + this.samples[1][1] = 4096; + this.samples[1][0] = 2867; + this.samples[2][1] = 4096; + this.samples[1][2] = 4096; + this.samples[2][2] = 4096; + this.samples[3][1] = 4096; + this.samples[2][0] = 3276; + this.samples[3][2] = 0; + this.samples[3][0] = 4096; } else { throw new RuntimeException("Invalid gradient preset"); } @@ -224,34 +224,34 @@ public final class TextureOpColorGradient extends TextureOp { @OriginalMember(owner = "client!um", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { if (arg0 != 0) { return; } @Pc(15) int local15 = arg1.g1(); if (local15 != 0) { - this.method4390(local15); + this.setPreset(local15); return; } - this.anIntArrayArray39 = new int[arg1.g1()][4]; - for (@Pc(35) int local35 = 0; local35 < this.anIntArrayArray39.length; local35++) { - this.anIntArrayArray39[local35][0] = arg1.g2(); - this.anIntArrayArray39[local35][1] = arg1.g1() << 4; - this.anIntArrayArray39[local35][2] = arg1.g1() << 4; - this.anIntArrayArray39[local35][3] = arg1.g1() << 4; + this.samples = new int[arg1.g1()][4]; + for (@Pc(35) int local35 = 0; local35 < this.samples.length; local35++) { + this.samples[local35][0] = arg1.g2(); + this.samples[local35][1] = arg1.g1() << 4; + this.samples[local35][2] = arg1.g1() << 4; + this.samples[local35][3] = arg1.g1() << 4; } } @OriginalMember(owner = "client!um", name = "h", descriptor = "(I)V") - private void method4391() { - @Pc(16) int local16 = this.anIntArrayArray39.length; + private void interpolate() { + @Pc(16) int local16 = this.samples.length; if (local16 <= 0) { return; } for (@Pc(24) int local24 = 0; local24 < 257; local24++) { @Pc(29) int local29 = 0; @Pc(33) int local33 = local24 << 4; - for (@Pc(35) int local35 = 0; local16 > local35 && local33 >= this.anIntArrayArray39[local35][0]; local35++) { + for (@Pc(35) int local35 = 0; local16 > local35 && local33 >= this.samples[local35][0]; local35++) { local29++; } @Pc(119) int local119; @@ -259,9 +259,9 @@ public final class TextureOpColorGradient extends TextureOp { @Pc(105) int local105; @Pc(60) int[] local60; if (local16 > local29) { - local60 = this.anIntArrayArray39[local29]; + local60 = this.samples[local29]; if (local29 > 0) { - @Pc(69) int[] local69 = this.anIntArrayArray39[local29 - 1]; + @Pc(69) int[] local69 = this.samples[local29 - 1]; @Pc(86) int local86 = (local33 - local69[0] << 12) / (local60[0] - local69[0]); @Pc(91) int local91 = 4096 - local86; local105 = local69[3] * local91 + local60[3] * local86 >> 12; @@ -273,7 +273,7 @@ public final class TextureOpColorGradient extends TextureOp { local133 = local60[2]; } } else { - local60 = this.anIntArrayArray39[local16 - 1]; + local60 = this.samples[local16 - 1]; local105 = local60[3]; local133 = local60[2]; local119 = local60[1]; @@ -296,20 +296,20 @@ public final class TextureOpColorGradient extends TextureOp { } else if (local105 > 255) { local105 = 255; } - this.anIntArray494[local24] = local105 | local133 << 8 | local119 << 16; + this.colors[local24] = local105 | local133 << 8 | local119 << 16; } } @OriginalMember(owner = "client!um", name = "b", descriptor = "(II)[[I") @Override - public final int[][] method4638(@OriginalArg(1) int arg0) { - @Pc(11) int[][] local11 = this.aClass103_41.method3173(arg0); - if (this.aClass103_41.aBoolean195) { - @Pc(31) int[] local31 = this.method4624(0, arg0); + public final int[][] getColorOutput(@OriginalArg(1) int arg0) { + @Pc(11) int[][] local11 = this.colorImageCache.get(arg0); + if (this.colorImageCache.invalid) { + @Pc(31) int[] local31 = this.getChildMonochromeOutput(0, arg0); @Pc(35) int[] local35 = local11[1]; @Pc(39) int[] local39 = local11[0]; @Pc(43) int[] local43 = local11[2]; - for (@Pc(45) int local45 = 0; local45 < Static10.anInt4457; local45++) { + for (@Pc(45) int local45 = 0; local45 < Texture.width; local45++) { @Pc(54) int local54 = local31[local45] >> 4; if (local54 < 0) { local54 = 0; @@ -317,7 +317,7 @@ public final class TextureOpColorGradient extends TextureOp { if (local54 > 256) { local54 = 256; } - local54 = this.anIntArray494[local54]; + local54 = this.colors[local54]; local39[local45] = local54 >> 12 & 0xFF0; local35[local45] = local54 >> 4 & 0xFF0; local43[local45] = (local54 & 0xFF) << 4; diff --git a/client/src/main/java/rt4/TextureOpCombine.java b/client/src/main/java/rt4/TextureOpCombine.java index ff57790..1c0c15c 100644 --- a/client/src/main/java/rt4/TextureOpCombine.java +++ b/client/src/main/java/rt4/TextureOpCombine.java @@ -9,7 +9,7 @@ import org.openrs2.deob.annotation.Pc; public final class TextureOpCombine extends TextureOp { @OriginalMember(owner = "client!pi", name = "Z", descriptor = "I") - private int anInt4543 = 6; + private int function = 6; @OriginalMember(owner = "client!pi", name = "", descriptor = "()V") public TextureOpCombine() { @@ -18,72 +18,72 @@ public final class TextureOpCombine extends TextureOp { @OriginalMember(owner = "client!pi", name = "a", descriptor = "(IB)[I") @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(11) int[] local11 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(22) int[] local22 = this.method4624(0, arg0); - @Pc(28) int[] local28 = this.method4624(1, arg0); - @Pc(31) int local31 = this.anInt4543; + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(11) int[] local11 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(22) int[] local22 = this.getChildMonochromeOutput(0, arg0); + @Pc(28) int[] local28 = this.getChildMonochromeOutput(1, arg0); + @Pc(31) int local31 = this.function; if (local31 == 1) { - for (local31 = 0; local31 < Static10.anInt4457; local31++) { + for (local31 = 0; local31 < Texture.width; local31++) { local11[local31] = local28[local31] + local22[local31]; } } else if (local31 == 2) { - for (local31 = 0; local31 < Static10.anInt4457; local31++) { + for (local31 = 0; local31 < Texture.width; local31++) { local11[local31] = local22[local31] - local28[local31]; } } else if (local31 == 3) { - for (local31 = 0; local31 < Static10.anInt4457; local31++) { + for (local31 = 0; local31 < Texture.width; local31++) { local11[local31] = local28[local31] * local22[local31] >> 12; } } else { @Pc(180) int local180; if (local31 == 4) { - for (local31 = 0; local31 < Static10.anInt4457; local31++) { + for (local31 = 0; local31 < Texture.width; local31++) { local180 = local28[local31]; local11[local31] = local180 == 0 ? 4096 : (local22[local31] << 12) / local180; } } else if (local31 == 5) { - for (local31 = 0; local31 < Static10.anInt4457; local31++) { + for (local31 = 0; local31 < Texture.width; local31++) { local11[local31] = 4096 - ((4096 - local22[local31]) * (-local28[local31] + 4096) >> 12); } } else if (local31 == 6) { - for (local31 = 0; local31 < Static10.anInt4457; local31++) { + for (local31 = 0; local31 < Texture.width; local31++) { local180 = local28[local31]; local11[local31] = local180 >= 2048 ? 4096 - ((4096 - local22[local31]) * (-local180 + 4096) >> 11) : local180 * local22[local31] >> 11; } } else { @Pc(295) int local295; if (local31 == 7) { - for (local31 = 0; local31 < Static10.anInt4457; local31++) { + for (local31 = 0; local31 < Texture.width; local31++) { local295 = local22[local31]; local11[local31] = local295 == 4096 ? 4096 : (local28[local31] << 12) / (4096 - local295); } } else if (local31 == 8) { - for (local31 = 0; local31 < Static10.anInt4457; local31++) { + for (local31 = 0; local31 < Texture.width; local31++) { local295 = local22[local31]; local11[local31] = local295 == 0 ? 0 : 4096 - (4096 - local28[local31] << 12) / local295; } } else if (local31 == 9) { - for (local31 = 0; local31 < Static10.anInt4457; local31++) { + for (local31 = 0; local31 < Texture.width; local31++) { local180 = local28[local31]; local295 = local22[local31]; local11[local31] = local295 < local180 ? local295 : local180; } } else if (local31 == 10) { - for (local31 = 0; local31 < Static10.anInt4457; local31++) { + for (local31 = 0; local31 < Texture.width; local31++) { local180 = local28[local31]; local295 = local22[local31]; local11[local31] = local295 > local180 ? local295 : local180; } } else if (local31 == 11) { - for (local31 = 0; local31 < Static10.anInt4457; local31++) { + for (local31 = 0; local31 < Texture.width; local31++) { local295 = local22[local31]; local180 = local28[local31]; local11[local31] = local180 < local295 ? local295 - local180 : local180 - local295; } } else if (local31 == 12) { - for (local31 = 0; local31 < Static10.anInt4457; local31++) { + for (local31 = 0; local31 < Texture.width; local31++) { local295 = local22[local31]; local180 = local28[local31]; local11[local31] = local180 + local295 - (local295 * local180 >> 11); @@ -97,11 +97,11 @@ public final class TextureOpCombine extends TextureOp { @OriginalMember(owner = "client!pi", name = "b", descriptor = "(II)[[I") @Override - public final int[][] method4638(@OriginalArg(1) int arg0) { - @Pc(20) int[][] local20 = this.aClass103_41.method3173(arg0); - if (this.aClass103_41.aBoolean195) { - @Pc(30) int[][] local30 = this.method4634(arg0, 0); - @Pc(36) int[][] local36 = this.method4634(arg0, 1); + public final int[][] getColorOutput(@OriginalArg(1) int arg0) { + @Pc(20) int[][] local20 = this.colorImageCache.get(arg0); + if (this.colorImageCache.invalid) { + @Pc(30) int[][] local30 = this.getChildColorOutput(arg0, 0); + @Pc(36) int[][] local36 = this.getChildColorOutput(arg0, 1); @Pc(40) int[] local40 = local20[0]; @Pc(44) int[] local44 = local20[1]; @Pc(48) int[] local48 = local20[2]; @@ -111,21 +111,21 @@ public final class TextureOpCombine extends TextureOp { @Pc(64) int[] local64 = local36[0]; @Pc(68) int[] local68 = local36[1]; @Pc(72) int[] local72 = local36[2]; - @Pc(75) int local75 = this.anInt4543; + @Pc(75) int local75 = this.function; if (local75 == 1) { - for (local75 = 0; local75 < Static10.anInt4457; local75++) { + for (local75 = 0; local75 < Texture.width; local75++) { local40[local75] = local64[local75] + local52[local75]; local44[local75] = local68[local75] + local56[local75]; local48[local75] = local60[local75] + local72[local75]; } } else if (local75 == 2) { - for (local75 = 0; local75 < Static10.anInt4457; local75++) { + for (local75 = 0; local75 < Texture.width; local75++) { local40[local75] = local52[local75] - local64[local75]; local44[local75] = local56[local75] - local68[local75]; local48[local75] = local60[local75] - local72[local75]; } } else if (local75 == 3) { - for (local75 = 0; local75 < Static10.anInt4457; local75++) { + for (local75 = 0; local75 < Texture.width; local75++) { local40[local75] = local64[local75] * local52[local75] >> 12; local44[local75] = local56[local75] * local68[local75] >> 12; local48[local75] = local72[local75] * local60[local75] >> 12; @@ -135,7 +135,7 @@ public final class TextureOpCombine extends TextureOp { @Pc(282) int local282; @Pc(278) int local278; if (local75 == 4) { - for (local75 = 0; local75 < Static10.anInt4457; local75++) { + for (local75 = 0; local75 < Texture.width; local75++) { local278 = local72[local75]; local282 = local68[local75]; local286 = local64[local75]; @@ -144,13 +144,13 @@ public final class TextureOpCombine extends TextureOp { local48[local75] = local278 == 0 ? 4096 : (local60[local75] << 12) / local278; } } else if (local75 == 5) { - for (local75 = 0; local75 < Static10.anInt4457; local75++) { + for (local75 = 0; local75 < Texture.width; local75++) { local40[local75] = 4096 - ((4096 - local64[local75]) * (4096 - local52[local75]) >> 12); local44[local75] = 4096 - ((4096 - local68[local75]) * (-local56[local75] + 4096) >> 12); local48[local75] = 4096 - ((4096 - local72[local75]) * (-local60[local75] + 4096) >> 12); } } else if (local75 == 6) { - for (local75 = 0; local75 < Static10.anInt4457; local75++) { + for (local75 = 0; local75 < Texture.width; local75++) { local278 = local72[local75]; local286 = local64[local75]; local282 = local68[local75]; @@ -163,7 +163,7 @@ public final class TextureOpCombine extends TextureOp { @Pc(543) int local543; @Pc(535) int local535; if (local75 == 7) { - for (local75 = 0; local75 < Static10.anInt4457; local75++) { + for (local75 = 0; local75 < Texture.width; local75++) { local535 = local60[local75]; local539 = local52[local75]; local543 = local56[local75]; @@ -172,7 +172,7 @@ public final class TextureOpCombine extends TextureOp { local48[local75] = local535 == 4096 ? 4096 : (local72[local75] << 12) / (4096 - local535); } } else if (local75 == 8) { - for (local75 = 0; local75 < Static10.anInt4457; local75++) { + for (local75 = 0; local75 < Texture.width; local75++) { local539 = local52[local75]; local543 = local56[local75]; local535 = local60[local75]; @@ -181,7 +181,7 @@ public final class TextureOpCombine extends TextureOp { local48[local75] = local535 == 0 ? 0 : 4096 - (4096 - local72[local75] << 12) / local535; } } else if (local75 == 9) { - for (local75 = 0; local75 < Static10.anInt4457; local75++) { + for (local75 = 0; local75 < Texture.width; local75++) { local535 = local60[local75]; local278 = local72[local75]; local282 = local68[local75]; @@ -193,7 +193,7 @@ public final class TextureOpCombine extends TextureOp { local48[local75] = local535 < local278 ? local535 : local278; } } else if (local75 == 10) { - for (local75 = 0; local75 < Static10.anInt4457; local75++) { + for (local75 = 0; local75 < Texture.width; local75++) { local278 = local72[local75]; local535 = local60[local75]; local282 = local68[local75]; @@ -205,7 +205,7 @@ public final class TextureOpCombine extends TextureOp { local48[local75] = local278 < local535 ? local535 : local278; } } else if (local75 == 11) { - for (local75 = 0; local75 < Static10.anInt4457; local75++) { + for (local75 = 0; local75 < Texture.width; local75++) { local282 = local68[local75]; local286 = local64[local75]; local543 = local56[local75]; @@ -217,7 +217,7 @@ public final class TextureOpCombine extends TextureOp { local48[local75] = local278 < local535 ? local535 - local278 : -local535 + local278; } } else if (local75 == 12) { - for (local75 = 0; local75 < Static10.anInt4457; local75++) { + for (local75 = 0; local75 < Texture.width; local75++) { local539 = local52[local75]; local278 = local72[local75]; local286 = local64[local75]; @@ -237,11 +237,11 @@ public final class TextureOpCombine extends TextureOp { @OriginalMember(owner = "client!pi", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { if (arg0 == 0) { - this.anInt4543 = arg1.g1(); + this.function = arg1.g1(); } else if (arg0 == 1) { - this.aBoolean309 = arg1.g1() == 1; + this.monochrome = arg1.g1() == 1; } } } diff --git a/client/src/main/java/rt4/TextureOpCurve.java b/client/src/main/java/rt4/TextureOpCurve.java index 68504a7..a42a3d8 100644 --- a/client/src/main/java/rt4/TextureOpCurve.java +++ b/client/src/main/java/rt4/TextureOpCurve.java @@ -9,13 +9,13 @@ import org.openrs2.deob.annotation.Pc; public final class TextureOpCurve extends TextureOp { @OriginalMember(owner = "client!wi", name = "Q", descriptor = "[I") - private int[] anIntArray566; + private int[] lastMarker; @OriginalMember(owner = "client!wi", name = "gb", descriptor = "[I") - private int[] anIntArray567; + private int[] firstMarker; @OriginalMember(owner = "client!wi", name = "ib", descriptor = "[[I") - private int[][] anIntArrayArray47; + private int[][] markers; @OriginalMember(owner = "client!wi", name = "cb", descriptor = "[S") private final short[] aShortArray96 = new short[257]; @@ -42,15 +42,15 @@ public final class TextureOpCurve extends TextureOp { if (local8 == 2) { for (local8 = 0; local8 < 257; local8++) { local27 = local8 << 4; - for (local29 = 1; this.anIntArrayArray47.length - 1 > local29 && this.anIntArrayArray47[local29][0] <= local27; local29++) { + for (local29 = 1; this.markers.length - 1 > local29 && this.markers[local29][0] <= local27; local29++) { } - local52 = this.anIntArrayArray47[local29]; - local59 = this.anIntArrayArray47[local29 - 1]; - local68 = this.method4643(local29 - 2)[1]; + local52 = this.markers[local29]; + local59 = this.markers[local29 - 1]; + local68 = this.getMarker(local29 - 2)[1]; local72 = local52[1]; local76 = local59[1]; @Pc(80) int local80 = local72 - local68; - local89 = this.method4643(local29 + 1)[1]; + local89 = this.getMarker(local29 + 1)[1]; @Pc(107) int local107 = (local27 - local59[0] << 12) / (local52[0] - local59[0]); @Pc(117) int local117 = local89 + local76 - local72 - local68; @Pc(123) int local123 = local107 * local107 >> 12; @@ -70,12 +70,12 @@ public final class TextureOpCurve extends TextureOp { } else if (local8 == 1) { for (local8 = 0; local8 < 257; local8++) { local27 = local8 << 4; - for (local29 = 1; local29 < this.anIntArrayArray47.length - 1 && this.anIntArrayArray47[local29][0] <= local27; local29++) { + for (local29 = 1; local29 < this.markers.length - 1 && this.markers[local29][0] <= local27; local29++) { } - local59 = this.anIntArrayArray47[local29 - 1]; - local52 = this.anIntArrayArray47[local29]; + local59 = this.markers[local29 - 1]; + local52 = this.markers[local29]; local68 = (local27 - local59[0] << 12) / (local52[0] - local59[0]); - local76 = 4096 - Static9.anIntArray299[local68 >> 5 & 0xFF] >> 1; + local76 = 4096 - TextureOp.COSINE[local68 >> 5 & 0xFF] >> 1; local72 = 4096 - local76; local89 = local76 * local52[1] + local59[1] * local72 >> 12; if (local89 <= -32768) { @@ -89,10 +89,10 @@ public final class TextureOpCurve extends TextureOp { } else { for (local8 = 0; local8 < 257; local8++) { local27 = local8 << 4; - for (local29 = 1; this.anIntArrayArray47.length - 1 > local29 && this.anIntArrayArray47[local29][0] <= local27; local29++) { + for (local29 = 1; this.markers.length - 1 > local29 && this.markers[local29][0] <= local27; local29++) { } - local52 = this.anIntArrayArray47[local29]; - local59 = this.anIntArrayArray47[local29 - 1]; + local52 = this.markers[local29]; + local59 = this.markers[local29 - 1]; local68 = (local27 - local59[0] << 12) / (local52[0] - local59[0]); local76 = 4096 - local68; local72 = local52[1] * local68 + local76 * local59[1] >> 12; @@ -109,11 +109,11 @@ public final class TextureOpCurve extends TextureOp { @OriginalMember(owner = "client!wi", name = "a", descriptor = "(IB)[I") @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(19) int[] local19 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(29) int[] local29 = this.method4624(0, arg0); - for (@Pc(31) int local31 = 0; local31 < Static10.anInt4457; local31++) { + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(19) int[] local19 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(29) int[] local29 = this.getChildMonochromeOutput(0, arg0); + for (@Pc(31) int local31 = 0; local31 < Texture.width; local31++) { @Pc(44) int local44 = local29[local31] >> 4; if (local44 < 0) { local44 = 0; @@ -129,50 +129,50 @@ public final class TextureOpCurve extends TextureOp { @OriginalMember(owner = "client!wi", name = "e", descriptor = "(I)V") @Override - public final void method4630() { - if (this.anIntArrayArray47 == null) { - this.anIntArrayArray47 = new int[][] { { 0, 0 }, { 4096, 4096 } }; + public final void postDecode() { + if (this.markers == null) { + this.markers = new int[][] { { 0, 0 }, { 4096, 4096 } }; } - if (this.anIntArrayArray47.length < 2) { + if (this.markers.length < 2) { throw new RuntimeException("Curve operation requires at least two markers"); } if (this.anInt5852 == 2) { this.method4642(); } - Static9.method185(); + TextureOp.createTrigonometryTables(); this.method4639(); } @OriginalMember(owner = "client!wi", name = "a", descriptor = "(Z)V") private void method4642() { - @Pc(8) int[] local8 = this.anIntArrayArray47[0]; - @Pc(20) int[] local20 = this.anIntArrayArray47[1]; - @Pc(29) int[] local29 = this.anIntArrayArray47[this.anIntArrayArray47.length - 2]; - @Pc(38) int[] local38 = this.anIntArrayArray47[this.anIntArrayArray47.length - 1]; - this.anIntArray566 = new int[] { local8[0] + local8[0] - local20[0], -local20[1] + local8[1] + local8[1] }; - this.anIntArray567 = new int[] { local29[0] + local29[0] - local38[0], -local38[1] - -local29[1] + local29[1] }; + @Pc(8) int[] local8 = this.markers[0]; + @Pc(20) int[] local20 = this.markers[1]; + @Pc(29) int[] local29 = this.markers[this.markers.length - 2]; + @Pc(38) int[] local38 = this.markers[this.markers.length - 1]; + this.lastMarker = new int[] { local8[0] + local8[0] - local20[0], -local20[1] + local8[1] + local8[1] }; + this.firstMarker = new int[] { local29[0] + local29[0] - local38[0], -local38[1] - -local29[1] + local29[1] }; } @OriginalMember(owner = "client!wi", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { if (arg0 != 0) { return; } this.anInt5852 = arg1.g1(); - this.anIntArrayArray47 = new int[arg1.g1()][2]; - for (@Pc(23) int local23 = 0; local23 < this.anIntArrayArray47.length; local23++) { - this.anIntArrayArray47[local23][0] = arg1.g2(); - this.anIntArrayArray47[local23][1] = arg1.g2(); + this.markers = new int[arg1.g1()][2]; + for (@Pc(23) int local23 = 0; local23 < this.markers.length; local23++) { + this.markers[local23][0] = arg1.g2(); + this.markers[local23][1] = arg1.g2(); } } @OriginalMember(owner = "client!wi", name = "a", descriptor = "(BI)[I") - private int[] method4643(@OriginalArg(1) int arg0) { + private int[] getMarker(@OriginalArg(1) int arg0) { if (arg0 >= 0) { - return arg0 >= this.anIntArrayArray47.length ? this.anIntArray567 : this.anIntArrayArray47[arg0]; + return arg0 >= this.markers.length ? this.firstMarker : this.markers[arg0]; } else { - return this.anIntArray566; + return this.lastMarker; } } } diff --git a/client/src/main/java/rt4/TextureOp7.java b/client/src/main/java/rt4/TextureOpFlip.java similarity index 54% rename from client/src/main/java/rt4/TextureOp7.java rename to client/src/main/java/rt4/TextureOpFlip.java index 5e42aff..3e2a0c8 100644 --- a/client/src/main/java/rt4/TextureOp7.java +++ b/client/src/main/java/rt4/TextureOpFlip.java @@ -6,7 +6,7 @@ import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; @OriginalClass("client!ej") -public final class TextureOp7 extends TextureOp { +public final class TextureOpFlip extends TextureOp { @OriginalMember(owner = "client!ej", name = "P", descriptor = "Z") private boolean aBoolean104 = true; @@ -15,28 +15,28 @@ public final class TextureOp7 extends TextureOp { private boolean aBoolean105 = true; @OriginalMember(owner = "client!ej", name = "", descriptor = "()V") - public TextureOp7() { + public TextureOpFlip() { super(1, false); } @OriginalMember(owner = "client!ej", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { if (arg0 == 0) { this.aBoolean104 = arg1.g1() == 1; } else if (arg0 == 1) { this.aBoolean105 = arg1.g1() == 1; } else if (arg0 == 2) { - this.aBoolean309 = arg1.g1() == 1; + this.monochrome = arg1.g1() == 1; } } @OriginalMember(owner = "client!ej", name = "b", descriptor = "(II)[[I") @Override - public final int[][] method4638(@OriginalArg(1) int arg0) { - @Pc(20) int[][] local20 = this.aClass103_41.method3173(arg0); - if (this.aClass103_41.aBoolean195) { - @Pc(39) int[][] local39 = this.method4634(this.aBoolean105 ? Static10.anInt3473 - arg0 : arg0, 0); + public final int[][] getColorOutput(@OriginalArg(1) int arg0) { + @Pc(20) int[][] local20 = this.colorImageCache.get(arg0); + if (this.colorImageCache.invalid) { + @Pc(39) int[][] local39 = this.getChildColorOutput(this.aBoolean105 ? Texture.heightMask - arg0 : arg0, 0); @Pc(43) int[] local43 = local39[0]; @Pc(47) int[] local47 = local39[2]; @Pc(51) int[] local51 = local39[1]; @@ -45,13 +45,13 @@ public final class TextureOp7 extends TextureOp { @Pc(63) int[] local63 = local20[0]; @Pc(68) int local68; if (this.aBoolean104) { - for (local68 = 0; local68 < Static10.anInt4457; local68++) { - local63[local68] = local43[Static34.anInt1060 - local68]; - local55[local68] = local51[Static34.anInt1060 - local68]; - local59[local68] = local47[Static34.anInt1060 - local68]; + for (local68 = 0; local68 < Texture.width; local68++) { + local63[local68] = local43[Texture.widthMask - local68]; + local55[local68] = local51[Texture.widthMask - local68]; + local59[local68] = local47[Texture.widthMask - local68]; } } else { - for (local68 = 0; local68 < Static10.anInt4457; local68++) { + for (local68 = 0; local68 < Texture.width; local68++) { local63[local68] = local43[local68]; local55[local68] = local51[local68]; local59[local68] = local47[local68]; @@ -63,16 +63,16 @@ public final class TextureOp7 extends TextureOp { @OriginalMember(owner = "client!ej", name = "a", descriptor = "(IB)[I") @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(15) int[] local15 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(38) int[] local38 = this.method4624(0, this.aBoolean105 ? Static10.anInt3473 - arg0 : arg0); + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(15) int[] local15 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(38) int[] local38 = this.getChildMonochromeOutput(0, this.aBoolean105 ? Texture.heightMask - arg0 : arg0); if (this.aBoolean104) { - for (@Pc(51) int local51 = 0; local51 < Static10.anInt4457; local51++) { - local15[local51] = local38[Static34.anInt1060 - local51]; + for (@Pc(51) int local51 = 0; local51 < Texture.width; local51++) { + local15[local51] = local38[Texture.widthMask - local51]; } } else { - ArrayUtils.copy(local38, 0, local15, 0, Static10.anInt4457); + ArrayUtils.copy(local38, 0, local15, 0, Texture.width); } } return local15; diff --git a/client/src/main/java/rt4/TextureOpHorizontalGradient.java b/client/src/main/java/rt4/TextureOpHorizontalGradient.java new file mode 100644 index 0000000..c79b7bb --- /dev/null +++ b/client/src/main/java/rt4/TextureOpHorizontalGradient.java @@ -0,0 +1,20 @@ +package rt4; + +import org.openrs2.deob.annotation.OriginalArg; +import org.openrs2.deob.annotation.OriginalClass; +import org.openrs2.deob.annotation.OriginalMember; + +@OriginalClass("client!rl") +public final class TextureOpHorizontalGradient extends TextureOp { + + @OriginalMember(owner = "client!rl", name = "", descriptor = "()V") + public TextureOpHorizontalGradient() { + super(0, true); + } + + @OriginalMember(owner = "client!rl", name = "a", descriptor = "(IB)[I") + @Override + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + return Texture.widthFractions; + } +} diff --git a/client/src/main/java/rt4/TextureOpInterpolate.java b/client/src/main/java/rt4/TextureOpInterpolate.java new file mode 100644 index 0000000..d3d9fa5 --- /dev/null +++ b/client/src/main/java/rt4/TextureOpInterpolate.java @@ -0,0 +1,83 @@ +package rt4; + +import org.openrs2.deob.annotation.OriginalArg; +import org.openrs2.deob.annotation.OriginalClass; +import org.openrs2.deob.annotation.OriginalMember; +import org.openrs2.deob.annotation.Pc; + +@OriginalClass("client!bl") +public final class TextureOpInterpolate extends TextureOp { + + @OriginalMember(owner = "client!bl", name = "", descriptor = "()V") + public TextureOpInterpolate() { + super(3, false); + } + + @OriginalMember(owner = "client!bl", name = "b", descriptor = "(II)[[I") + @Override + public final int[][] getColorOutput(@OriginalArg(1) int arg0) { + @Pc(16) int[][] local16 = this.colorImageCache.get(arg0); + if (this.colorImageCache.invalid) { + @Pc(27) int[] local27 = this.getChildMonochromeOutput(2, arg0); + @Pc(33) int[][] local33 = this.getChildColorOutput(arg0, 0); + @Pc(39) int[][] local39 = this.getChildColorOutput(arg0, 1); + @Pc(43) int[] local43 = local16[2]; + @Pc(47) int[] local47 = local16[1]; + @Pc(51) int[] local51 = local33[0]; + @Pc(55) int[] local55 = local33[1]; + @Pc(59) int[] local59 = local16[0]; + @Pc(63) int[] local63 = local39[0]; + @Pc(67) int[] local67 = local33[2]; + @Pc(71) int[] local71 = local39[2]; + @Pc(75) int[] local75 = local39[1]; + for (@Pc(77) int local77 = 0; local77 < Texture.width; local77++) { + @Pc(88) int local88 = local27[local77]; + if (local88 == 4096) { + local59[local77] = local51[local77]; + local47[local77] = local55[local77]; + local43[local77] = local67[local77]; + } else if (local88 == 0) { + local59[local77] = local63[local77]; + local47[local77] = local75[local77]; + local43[local77] = local71[local77]; + } else { + @Pc(99) int local99 = 4096 - local88; + local59[local77] = local99 * local63[local77] + local88 * local51[local77] >> 12; + local47[local77] = local99 * local75[local77] + local55[local77] * local88 >> 12; + local43[local77] = local71[local77] * local99 + local67[local77] * local88 >> 12; + } + } + } + return local16; + } + + @OriginalMember(owner = "client!bl", name = "a", descriptor = "(ILclient!wa;Z)V") + @Override + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + if (arg0 == 0) { + this.monochrome = arg1.g1() == 1; + } + } + + @OriginalMember(owner = "client!bl", name = "a", descriptor = "(IB)[I") + @Override + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(11) int[] local11 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(30) int[] local30 = this.getChildMonochromeOutput(0, arg0); + @Pc(36) int[] local36 = this.getChildMonochromeOutput(1, arg0); + @Pc(42) int[] local42 = this.getChildMonochromeOutput(2, arg0); + for (@Pc(44) int local44 = 0; local44 < Texture.width; local44++) { + @Pc(55) int local55 = local42[local44]; + if (local55 == 4096) { + local11[local44] = local30[local44]; + } else if (local55 == 0) { + local11[local44] = local36[local44]; + } else { + local11[local44] = local55 * local30[local44] + (4096 - local55) * local36[local44] >> 12; + } + } + } + return local11; + } +} diff --git a/client/src/main/java/rt4/TextureOpInvert.java b/client/src/main/java/rt4/TextureOpInvert.java new file mode 100644 index 0000000..f7241df --- /dev/null +++ b/client/src/main/java/rt4/TextureOpInvert.java @@ -0,0 +1,57 @@ +package rt4; + +import org.openrs2.deob.annotation.OriginalArg; +import org.openrs2.deob.annotation.OriginalClass; +import org.openrs2.deob.annotation.OriginalMember; +import org.openrs2.deob.annotation.Pc; + +@OriginalClass("client!tb") +public final class TextureOpInvert extends TextureOp { + + @OriginalMember(owner = "client!tb", name = "", descriptor = "()V") + public TextureOpInvert() { + super(1, false); + } + + @OriginalMember(owner = "client!tb", name = "a", descriptor = "(IB)[I") + @Override + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(7) int[] local7 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(21) int[] local21 = this.getChildMonochromeOutput(0, arg0); + for (@Pc(23) int local23 = 0; local23 < Texture.width; local23++) { + local7[local23] = 4096 - local21[local23]; + } + } + return local7; + } + + @OriginalMember(owner = "client!tb", name = "a", descriptor = "(ILclient!wa;Z)V") + @Override + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + if (arg0 == 0) { + this.monochrome = arg1.g1() == 1; + } + } + + @OriginalMember(owner = "client!tb", name = "b", descriptor = "(II)[[I") + @Override + public final int[][] getColorOutput(@OriginalArg(1) int arg0) { + @Pc(18) int[][] local18 = this.colorImageCache.get(arg0); + if (this.colorImageCache.invalid) { + @Pc(28) int[][] local28 = this.getChildColorOutput(arg0, 0); + @Pc(32) int[] local32 = local28[2]; + @Pc(36) int[] local36 = local28[0]; + @Pc(40) int[] local40 = local28[1]; + @Pc(44) int[] local44 = local18[0]; + @Pc(48) int[] local48 = local18[1]; + @Pc(52) int[] local52 = local18[2]; + for (@Pc(54) int local54 = 0; local54 < Texture.width; local54++) { + local44[local54] = 4096 - local36[local54]; + local48[local54] = 4096 - local40[local54]; + local52[local54] = 4096 - local32[local54]; + } + } + return local18; + } +} diff --git a/client/src/main/java/rt4/TextureOp10.java b/client/src/main/java/rt4/TextureOpMonochrome.java similarity index 61% rename from client/src/main/java/rt4/TextureOp10.java rename to client/src/main/java/rt4/TextureOpMonochrome.java index 2b36839..0af99c0 100644 --- a/client/src/main/java/rt4/TextureOp10.java +++ b/client/src/main/java/rt4/TextureOpMonochrome.java @@ -6,23 +6,23 @@ import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; @OriginalClass("client!fn") -public final class TextureOp10 extends TextureOp { +public final class TextureOpMonochrome extends TextureOp { @OriginalMember(owner = "client!fn", name = "", descriptor = "()V") - public TextureOp10() { + public TextureOpMonochrome() { super(1, true); } @OriginalMember(owner = "client!fn", name = "a", descriptor = "(IB)[I") @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(19) int[] local19 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(30) int[][] local30 = this.method4634(arg0, 0); + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(19) int[] local19 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(30) int[][] local30 = this.getChildColorOutput(arg0, 0); @Pc(34) int[] local34 = local30[0]; @Pc(38) int[] local38 = local30[2]; @Pc(42) int[] local42 = local30[1]; - for (@Pc(44) int local44 = 0; local44 < Static10.anInt4457; local44++) { + for (@Pc(44) int local44 = 0; local44 < Texture.width; local44++) { local19[local44] = (local38[local44] + local34[local44] + local42[local44]) / 3; } } diff --git a/client/src/main/java/rt4/TextureOp20.java b/client/src/main/java/rt4/TextureOpMonochromeFill.java similarity index 63% rename from client/src/main/java/rt4/TextureOp20.java rename to client/src/main/java/rt4/TextureOpMonochromeFill.java index 7105733..1e3ae5d 100644 --- a/client/src/main/java/rt4/TextureOp20.java +++ b/client/src/main/java/rt4/TextureOpMonochromeFill.java @@ -6,26 +6,26 @@ import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; @OriginalClass("client!mi") -public final class TextureOp20 extends TextureOp { +public final class TextureOpMonochromeFill extends TextureOp { @OriginalMember(owner = "client!mi", name = "bb", descriptor = "I") private int anInt3894; @OriginalMember(owner = "client!mi", name = "", descriptor = "(I)V") - private TextureOp20(@OriginalArg(0) int arg0) { + private TextureOpMonochromeFill(@OriginalArg(0) int arg0) { super(0, true); this.anInt3894 = 4096; this.anInt3894 = arg0; } @OriginalMember(owner = "client!mi", name = "", descriptor = "()V") - public TextureOp20() { + public TextureOpMonochromeFill() { this(4096); } @OriginalMember(owner = "client!mi", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { if (arg0 == 0) { this.anInt3894 = (arg1.g1() << 12) / 255; } @@ -33,10 +33,10 @@ public final class TextureOp20 extends TextureOp { @OriginalMember(owner = "client!mi", name = "a", descriptor = "(IB)[I") @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(17) int[] local17 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - ArrayUtils.fill(local17, 0, Static10.anInt4457, this.anInt3894); + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(17) int[] local17 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + ArrayUtils.fill(local17, 0, Texture.width, this.anInt3894); } return local17; } diff --git a/client/src/main/java/rt4/TextureOp26.java b/client/src/main/java/rt4/TextureOpNoise.java similarity index 62% rename from client/src/main/java/rt4/TextureOp26.java rename to client/src/main/java/rt4/TextureOpNoise.java index 7437dc5..f58c8e7 100644 --- a/client/src/main/java/rt4/TextureOp26.java +++ b/client/src/main/java/rt4/TextureOpNoise.java @@ -6,10 +6,10 @@ import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; @OriginalClass("client!rj") -public final class TextureOp26 extends TextureOp { +public final class TextureOpNoise extends TextureOp { @OriginalMember(owner = "client!rj", name = "", descriptor = "()V") - public TextureOp26() { + public TextureOpNoise() { super(0, true); } @@ -22,12 +22,12 @@ public final class TextureOp26 extends TextureOp { @OriginalMember(owner = "client!rj", name = "a", descriptor = "(IB)[I") @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(15) int[] local15 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(27) int local27 = Static10.anIntArray153[arg0]; - for (@Pc(29) int local29 = 0; local29 < Static10.anInt4457; local29++) { - local15[local29] = this.method3769(local27, Static173.anIntArray367[local29]) % 4096; + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(15) int[] local15 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(27) int local27 = Texture.heightFractions[arg0]; + for (@Pc(29) int local29 = 0; local29 < Texture.width; local29++) { + local15[local29] = this.method3769(local27, Texture.widthFractions[local29]) % 4096; } } return local15; diff --git a/client/src/main/java/rt4/TextureOp9.java b/client/src/main/java/rt4/TextureOpRange.java similarity index 68% rename from client/src/main/java/rt4/TextureOp9.java rename to client/src/main/java/rt4/TextureOpRange.java index 7b4e42d..46adad0 100644 --- a/client/src/main/java/rt4/TextureOp9.java +++ b/client/src/main/java/rt4/TextureOpRange.java @@ -6,7 +6,7 @@ import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; @OriginalClass("client!fh") -public final class TextureOp9 extends TextureOp { +public final class TextureOpRange extends TextureOp { @OriginalMember(owner = "client!fh", name = "jb", descriptor = "I") private int anInt2007 = 1024; @@ -18,29 +18,29 @@ public final class TextureOp9 extends TextureOp { private int anInt2002 = 3072; @OriginalMember(owner = "client!fh", name = "", descriptor = "()V") - public TextureOp9() { + public TextureOpRange() { super(1, false); } @OriginalMember(owner = "client!fh", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { if (arg0 == 0) { this.anInt2007 = arg1.g2(); } else if (arg0 == 1) { this.anInt2002 = arg1.g2(); } else if (arg0 == 2) { - this.aBoolean309 = arg1.g1() == 1; + this.monochrome = arg1.g1() == 1; } } @OriginalMember(owner = "client!fh", name = "a", descriptor = "(IB)[I") @Override - public final int[] method4626(@OriginalArg(0) int arg0) { - @Pc(19) int[] local19 = this.aClass121_41.method3445(arg0); - if (this.aClass121_41.invalid) { - @Pc(30) int[] local30 = this.method4624(0, arg0); - for (@Pc(32) int local32 = 0; local32 < Static10.anInt4457; local32++) { + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(19) int[] local19 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(30) int[] local30 = this.getChildMonochromeOutput(0, arg0); + for (@Pc(32) int local32 = 0; local32 < Texture.width; local32++) { local19[local32] = this.anInt2007 + (local30[local32] * this.anInt2001 >> 12); } } @@ -49,17 +49,17 @@ public final class TextureOp9 extends TextureOp { @OriginalMember(owner = "client!fh", name = "b", descriptor = "(II)[[I") @Override - public final int[][] method4638(@OriginalArg(1) int arg0) { - @Pc(7) int[][] local7 = this.aClass103_41.method3173(arg0); - if (this.aClass103_41.aBoolean195) { - @Pc(17) int[][] local17 = this.method4634(arg0, 0); + public final int[][] getColorOutput(@OriginalArg(1) int arg0) { + @Pc(7) int[][] local7 = this.colorImageCache.get(arg0); + if (this.colorImageCache.invalid) { + @Pc(17) int[][] local17 = this.getChildColorOutput(arg0, 0); @Pc(21) int[] local21 = local17[1]; @Pc(25) int[] local25 = local17[2]; @Pc(29) int[] local29 = local17[0]; @Pc(33) int[] local33 = local7[0]; @Pc(37) int[] local37 = local7[1]; @Pc(41) int[] local41 = local7[2]; - for (@Pc(43) int local43 = 0; local43 < Static10.anInt4457; local43++) { + for (@Pc(43) int local43 = 0; local43 < Texture.width; local43++) { local33[local43] = this.anInt2007 + (this.anInt2001 * local29[local43] >> 12); local37[local43] = (this.anInt2001 * local21[local43] >> 12) + this.anInt2007; local41[local43] = this.anInt2007 + (this.anInt2001 * local25[local43] >> 12); @@ -70,7 +70,7 @@ public final class TextureOp9 extends TextureOp { @OriginalMember(owner = "client!fh", name = "e", descriptor = "(I)V") @Override - public final void method4630() { + public final void postDecode() { this.anInt2001 = this.anInt2002 - this.anInt2007; } } diff --git a/client/src/main/java/rt4/TextureOpSprite.java b/client/src/main/java/rt4/TextureOpSprite.java index 9a27d2d..5d6cdeb 100644 --- a/client/src/main/java/rt4/TextureOpSprite.java +++ b/client/src/main/java/rt4/TextureOpSprite.java @@ -9,16 +9,16 @@ import org.openrs2.deob.annotation.Pc; public class TextureOpSprite extends TextureOp { @OriginalMember(owner = "client!nh", name = "U", descriptor = "I") - protected int anInt3239; + protected int width; @OriginalMember(owner = "client!nh", name = "X", descriptor = "I") - protected int anInt3240; + protected int height; @OriginalMember(owner = "client!nh", name = "Y", descriptor = "[I") - protected int[] anIntArray305; + protected int[] pixels; @OriginalMember(owner = "client!nh", name = "P", descriptor = "I") - private int anInt3235 = -1; + private int spriteId = -1; @OriginalMember(owner = "client!nh", name = "", descriptor = "()V") public TextureOpSprite() { @@ -26,17 +26,17 @@ public class TextureOpSprite extends TextureOp { } @OriginalMember(owner = "client!nh", name = "h", descriptor = "(I)Z") - protected final boolean method2573() { - if (this.anIntArray305 != null) { + protected final boolean loadSprite() { + if (this.pixels != null) { return true; - } else if (this.anInt3235 < 0) { + } else if (this.spriteId < 0) { return false; } else { - @Pc(43) SoftwareSprite local43 = Texture.anInt4868 < 0 ? SpriteLoader.method3117(Static176.aClass153_76, this.anInt3235) : SpriteLoader.loadSoftwareSprite(this.anInt3235, Static176.aClass153_76, Texture.anInt4868); + @Pc(43) SoftwareSprite local43 = Texture.spriteGroupId < 0 ? SpriteLoader.loadSoftwareSpriteAutoDetect(Texture.spritesArchive, this.spriteId) : SpriteLoader.loadSoftwareSprite(this.spriteId, Texture.spritesArchive, Texture.spriteGroupId); local43.trim(); - this.anInt3240 = local43.height; - this.anInt3239 = local43.width; - this.anIntArray305 = local43.pixels; + this.height = local43.height; + this.width = local43.width; + this.pixels = local43.pixels; return true; } } @@ -44,31 +44,31 @@ public class TextureOpSprite extends TextureOp { @OriginalMember(owner = "client!nh", name = "f", descriptor = "(I)I") @Override public final int method4631() { - return this.anInt3235; + return this.spriteId; } @OriginalMember(owner = "client!nh", name = "b", descriptor = "(II)[[I") @Override - public int[][] method4638(@OriginalArg(1) int arg0) { - @Pc(18) int[][] local18 = this.aClass103_41.method3173(arg0); - if (this.aClass103_41.aBoolean195 && this.method2573()) { + public int[][] getColorOutput(@OriginalArg(1) int arg0) { + @Pc(18) int[][] local18 = this.colorImageCache.get(arg0); + if (this.colorImageCache.invalid && this.loadSprite()) { @Pc(31) int[] local31 = local18[0]; @Pc(35) int[] local35 = local18[1]; @Pc(39) int[] local39 = local18[2]; - @Pc(59) int local59 = (this.anInt3240 == Static10.anInt4165 ? arg0 : this.anInt3240 * arg0 / Static10.anInt4165) * this.anInt3239; + @Pc(59) int local59 = (this.height == Texture.height ? arg0 : this.height * arg0 / Texture.height) * this.width; @Pc(65) int local65; @Pc(78) int local78; - if (Static10.anInt4457 == this.anInt3239) { - for (local65 = 0; local65 < Static10.anInt4457; local65++) { - local78 = this.anIntArray305[local59++]; + if (Texture.width == this.width) { + for (local65 = 0; local65 < Texture.width; local65++) { + local78 = this.pixels[local59++]; local39[local65] = (local78 & 0xFF) << 4; local35[local65] = local78 >> 4 & 0xFF0; local31[local65] = local78 >> 12 & 0xFF0; } } else { - for (local65 = 0; local65 < Static10.anInt4457; local65++) { - local78 = this.anInt3239 * local65 / Static10.anInt4457; - @Pc(127) int local127 = this.anIntArray305[local59 + local78]; + for (local65 = 0; local65 < Texture.width; local65++) { + local78 = this.width * local65 / Texture.width; + @Pc(127) int local127 = this.pixels[local59 + local78]; local39[local65] = (local127 & 0xFF) << 4; local35[local65] = local127 >> 4 & 0xFF0; local31[local65] = local127 >> 12 & 0xFF0; @@ -80,16 +80,16 @@ public class TextureOpSprite extends TextureOp { @OriginalMember(owner = "client!nh", name = "a", descriptor = "(ILclient!wa;Z)V") @Override - public final void method4629(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { if (arg0 == 0) { - this.anInt3235 = arg1.g2(); + this.spriteId = arg1.g2(); } } @OriginalMember(owner = "client!nh", name = "e", descriptor = "(B)V") @Override - public final void method4633() { - super.method4633(); - this.anIntArray305 = null; + public final void clearImageCache() { + super.clearImageCache(); + this.pixels = null; } } diff --git a/client/src/main/java/rt4/TextureOpTexture.java b/client/src/main/java/rt4/TextureOpTexture.java new file mode 100644 index 0000000..64e5730 --- /dev/null +++ b/client/src/main/java/rt4/TextureOpTexture.java @@ -0,0 +1,97 @@ +package rt4; + +import org.openrs2.deob.annotation.OriginalArg; +import org.openrs2.deob.annotation.OriginalClass; +import org.openrs2.deob.annotation.OriginalMember; +import org.openrs2.deob.annotation.Pc; + +@OriginalClass("client!ui") +public final class TextureOpTexture extends TextureOp { + + @OriginalMember(owner = "client!ui", name = "U", descriptor = "[I") + private int[] pixels; + + @OriginalMember(owner = "client!ui", name = "gb", descriptor = "I") + private int width; + + @OriginalMember(owner = "client!ui", name = "ib", descriptor = "I") + private int height; + + @OriginalMember(owner = "client!ui", name = "lb", descriptor = "I") + private int textureId = -1; + + @OriginalMember(owner = "client!ui", name = "", descriptor = "()V") + public TextureOpTexture() { + super(0, false); + } + + @OriginalMember(owner = "client!ui", name = "b", descriptor = "(II)[[I") + @Override + public final int[][] getColorOutput(@OriginalArg(1) int arg0) { + @Pc(17) int[][] local17 = this.colorImageCache.get(arg0); + if (this.colorImageCache.invalid && this.loadTexture()) { + @Pc(42) int local42 = (this.height == Texture.height ? arg0 : this.height * arg0 / Texture.height) * this.width; + @Pc(46) int[] local46 = local17[0]; + @Pc(50) int[] local50 = local17[1]; + @Pc(54) int[] local54 = local17[2]; + @Pc(64) int local64; + @Pc(73) int local73; + if (Texture.width == this.width) { + for (local64 = 0; local64 < Texture.width; local64++) { + local73 = this.pixels[local42++]; + local54[local64] = (local73 & 0xFF) << 4; + local50[local64] = local73 >> 4 & 0xFF0; + local46[local64] = local73 >> 12 & 0xFF0; + } + } else { + for (local64 = 0; local64 < Texture.width; local64++) { + local73 = this.width * local64 / Texture.width; + @Pc(122) int local122 = this.pixels[local42 + local73]; + local54[local64] = (local122 & 0xFF) << 4; + local50[local64] = local122 >> 4 & 0xFF0; + local46[local64] = local122 >> 12 & 0xFF0; + } + } + } + return local17; + } + + @OriginalMember(owner = "client!ui", name = "a", descriptor = "(Z)Z") + private boolean loadTexture() { + if (this.pixels != null) { + return true; + } else if (this.textureId < 0) { + return false; + } else { + @Pc(22) int local22 = Texture.width; + @Pc(24) int local24 = Texture.height; + @Pc(34) int local34 = Texture.provider.isLowDetail(this.textureId) ? 64 : 128; + this.pixels = Texture.provider.getPixels(this.textureId); + this.height = local34; + this.width = local34; + Texture.setSize(local24, local22); + return this.pixels != null; + } + } + + @OriginalMember(owner = "client!ui", name = "a", descriptor = "(ILclient!wa;Z)V") + @Override + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + if (arg0 == 0) { + this.textureId = arg1.g2(); + } + } + + @OriginalMember(owner = "client!ui", name = "e", descriptor = "(B)V") + @Override + public final void clearImageCache() { + super.clearImageCache(); + this.pixels = null; + } + + @OriginalMember(owner = "client!ui", name = "d", descriptor = "(B)I") + @Override + public final int method4627() { + return this.textureId; + } +} diff --git a/client/src/main/java/rt4/TextureOpTile.java b/client/src/main/java/rt4/TextureOpTile.java new file mode 100644 index 0000000..4b068e3 --- /dev/null +++ b/client/src/main/java/rt4/TextureOpTile.java @@ -0,0 +1,94 @@ +package rt4; + +import org.openrs2.deob.annotation.OriginalArg; +import org.openrs2.deob.annotation.OriginalClass; +import org.openrs2.deob.annotation.OriginalMember; +import org.openrs2.deob.annotation.Pc; + +@OriginalClass("client!gg") +public final class TextureOpTile extends TextureOp { + + @OriginalMember(owner = "client!gg", name = "V", descriptor = "I") + private int horizontalTiles = 4; + + @OriginalMember(owner = "client!gg", name = "R", descriptor = "I") + private int verticalTiles = 4; + + @OriginalMember(owner = "client!gg", name = "", descriptor = "()V") + public TextureOpTile() { + super(1, false); + } + + @OriginalMember(owner = "client!gg", name = "a", descriptor = "(ILclient!wa;Z)V") + @Override + public final void decode(@OriginalArg(0) int arg0, @OriginalArg(1) Buffer arg1) { + if (arg0 == 0) { + this.horizontalTiles = arg1.g1(); + } else if (arg0 == 1) { + this.verticalTiles = arg1.g1(); + } + } + + @OriginalMember(owner = "client!gg", name = "a", descriptor = "(IB)[I") + @Override + public final int[] getMonochromeOutput(@OriginalArg(0) int arg0) { + @Pc(19) int[] local19 = this.monochromeImageCache.get(arg0); + if (this.monochromeImageCache.invalid) { + @Pc(28) int local28 = Texture.width / this.horizontalTiles; + @Pc(33) int local33 = Texture.height / this.verticalTiles; + @Pc(44) int[] local44; + @Pc(50) int local50; + if (local33 <= 0) { + local44 = this.getChildMonochromeOutput(0, 0); + } else { + local50 = arg0 % local33; + local44 = this.getChildMonochromeOutput(0, Texture.height * local50 / local33); + } + for (local50 = 0; local50 < Texture.width; local50++) { + if (local28 <= 0) { + local19[local50] = local44[0]; + } else { + @Pc(80) int local80 = local50 % local28; + local19[local50] = local44[Texture.width * local80 / local28]; + } + } + } + return local19; + } + + @OriginalMember(owner = "client!gg", name = "b", descriptor = "(II)[[I") + @Override + public final int[][] getColorOutput(@OriginalArg(1) int arg0) { + @Pc(18) int[][] local18 = this.colorImageCache.get(arg0); + if (this.colorImageCache.invalid) { + @Pc(28) int local28 = Texture.width / this.horizontalTiles; + @Pc(33) int local33 = Texture.height / this.verticalTiles; + @Pc(49) int[][] local49; + if (local33 > 0) { + @Pc(39) int local39 = arg0 % local33; + local49 = this.getChildColorOutput(local39 * Texture.height / local33, 0); + } else { + local49 = this.getChildColorOutput(0, 0); + } + @Pc(61) int[] local61 = local49[0]; + @Pc(65) int[] local65 = local49[2]; + @Pc(69) int[] local69 = local18[0]; + @Pc(73) int[] local73 = local49[1]; + @Pc(77) int[] local77 = local18[1]; + @Pc(81) int[] local81 = local18[2]; + for (@Pc(83) int local83 = 0; local83 < Texture.width; local83++) { + @Pc(94) int local94; + if (local28 <= 0) { + local94 = 0; + } else { + @Pc(100) int local100 = local83 % local28; + local94 = local100 * Texture.width / local28; + } + local69[local83] = local61[local94]; + local77[local83] = local73[local94]; + local81[local83] = local65[local94]; + } + } + return local18; + } +} diff --git a/client/src/main/java/rt4/TextureOpTiledSprite.java b/client/src/main/java/rt4/TextureOpTiledSprite.java index 0ea6967..c533715 100644 --- a/client/src/main/java/rt4/TextureOpTiledSprite.java +++ b/client/src/main/java/rt4/TextureOpTiledSprite.java @@ -10,15 +10,15 @@ public final class TextureOpTiledSprite extends TextureOpSprite { @OriginalMember(owner = "client!kd", name = "b", descriptor = "(II)[[I") @Override - public final int[][] method4638(@OriginalArg(1) int arg0) { - @Pc(11) int[][] local11 = this.aClass103_41.method3173(arg0); - if (this.aClass103_41.aBoolean195 && this.method2573()) { + public final int[][] getColorOutput(@OriginalArg(1) int arg0) { + @Pc(11) int[][] local11 = this.colorImageCache.get(arg0); + if (this.colorImageCache.invalid && this.loadSprite()) { @Pc(24) int[] local24 = local11[0]; - @Pc(32) int local32 = arg0 % this.anInt3240 * this.anInt3240; + @Pc(32) int local32 = arg0 % this.height * this.height; @Pc(36) int[] local36 = local11[1]; @Pc(40) int[] local40 = local11[2]; - for (@Pc(42) int local42 = 0; local42 < Static10.anInt4457; local42++) { - @Pc(55) int local55 = this.anIntArray305[local32 + local42 % this.anInt3239]; + for (@Pc(42) int local42 = 0; local42 < Texture.width; local42++) { + @Pc(55) int local55 = this.pixels[local32 + local42 % this.width]; local40[local42] = (local55 & 0xFF) << 4; local36[local42] = local55 >> 4 & 0xFF0; local24[local42] = local55 >> 12 & 0xFF0; diff --git a/client/src/main/java/rt4/TextureOpVerticalGradient.java b/client/src/main/java/rt4/TextureOpVerticalGradient.java new file mode 100644 index 0000000..736d777 --- /dev/null +++ b/client/src/main/java/rt4/TextureOpVerticalGradient.java @@ -0,0 +1,25 @@ +package rt4; + +import org.openrs2.deob.annotation.OriginalArg; +import org.openrs2.deob.annotation.OriginalClass; +import org.openrs2.deob.annotation.OriginalMember; +import org.openrs2.deob.annotation.Pc; + +@OriginalClass("client!qg") +public final class TextureOpVerticalGradient extends TextureOp { + + @OriginalMember(owner = "client!qg", name = "", descriptor = "()V") + public TextureOpVerticalGradient() { + super(0, true); + } + + @OriginalMember(owner = "client!qg", name = "a", descriptor = "(IB)[I") + @Override + public final int[] getMonochromeOutput(@OriginalArg(0) int y) { + @Pc(9) int[] dest = this.monochromeImageCache.get(y); + if (this.monochromeImageCache.invalid) { + ArrayUtils.fill(dest, 0, Texture.width, Texture.heightFractions[y]); + } + return dest; + } +} diff --git a/client/src/main/java/rt4/TextureProvider.java b/client/src/main/java/rt4/TextureProvider.java index a1e7541..1966ea5 100644 --- a/client/src/main/java/rt4/TextureProvider.java +++ b/client/src/main/java/rt4/TextureProvider.java @@ -35,7 +35,7 @@ public interface TextureProvider { int getAverageColor(@OriginalArg(0) int arg0); @OriginalMember(owner = "client!m", name = "e", descriptor = "(II)[I") - int[] method3235(@OriginalArg(1) int arg0); + int[] getPixels(@OriginalArg(1) int arg0); @OriginalMember(owner = "client!m", name = "f", descriptor = "(II)Z") boolean method3236(@OriginalArg(0) int arg0);