diff --git a/client/src/main/java/Class3_Sub14.java b/client/src/main/java/Class3_Sub14.java index 00d2ec6..c51832f 100644 --- a/client/src/main/java/Class3_Sub14.java +++ b/client/src/main/java/Class3_Sub14.java @@ -280,7 +280,7 @@ public final class Class3_Sub14 extends Node { GlRenderer.setTextureId(-1); Static27.setMaterial(0, 0); } else { - Rasteriser.anInterface1_2.method3227(this.anInt2485); + Rasteriser.textureProvider.method3227(this.anInt2485); } @Pc(282) int local282 = this.aBoolean139 ? 40 : 36; if (this.aClass155_3 == null) { diff --git a/client/src/main/java/GlModel.java b/client/src/main/java/GlModel.java index 23b56af..1607858 100644 --- a/client/src/main/java/GlModel.java +++ b/client/src/main/java/GlModel.java @@ -140,7 +140,7 @@ public final class GlModel extends Model { @Pc(23) int[] local23 = new int[arg0.anInt2136]; this.anIntArray462 = new int[arg0.anInt2139 + 1]; for (@Pc(32) int local32 = 0; local32 < arg0.anInt2136; local32++) { - if ((arg0.aByteArray30 == null || arg0.aByteArray30[local32] != 2) && (arg0.aShortArray23 == null || arg0.aShortArray23[local32] == -1 || !Rasteriser.anInterface1_2.method3231(arg0.aShortArray23[local32] & 0xFFFF))) { + if ((arg0.aByteArray30 == null || arg0.aByteArray30[local32] != 2) && (arg0.aShortArray23 == null || arg0.aShortArray23[local32] == -1 || !Rasteriser.textureProvider.method3231(arg0.aShortArray23[local32] & 0xFFFF))) { local23[this.anInt5297++] = local32; this.anIntArray462[arg0.anIntArray197[local32]]++; this.anIntArray462[arg0.anIntArray200[local32]]++; @@ -162,11 +162,11 @@ public final class GlModel extends Model { if (arg0.aShortArray23 != null) { local135 = arg0.aShortArray23[local125]; if (local135 != -1) { - local131 = Rasteriser.anInterface1_2.method3237(local135 & 0xFFFF); - local133 = Rasteriser.anInterface1_2.method3228(local135 & 0xFFFF); + local131 = Rasteriser.textureProvider.method3237(local135 & 0xFFFF); + local133 = Rasteriser.textureProvider.method3228(local135 & 0xFFFF); } } - @Pc(182) boolean local182 = arg0.aByteArray26 != null && arg0.aByteArray26[local125] != 0 || local135 != -1 && !Rasteriser.anInterface1_2.method3226(local135 & 0xFFFF); + @Pc(182) boolean local182 = arg0.aByteArray26 != null && arg0.aByteArray26[local125] != 0 || local135 != -1 && !Rasteriser.textureProvider.isOpaque(local135 & 0xFFFF); if ((arg3 || local182) && arg0.aByteArray35 != null) { local127 += arg0.aByteArray35[local125] << 17; } @@ -648,20 +648,20 @@ public final class GlModel extends Model { } @Pc(84) int local84 = arg7 * arg3 + arg5 * arg4 >> 16; @Pc(90) int local90 = local84 + local13 << 9; - if (local90 / local53 <= Static240.anInt5334) { + if (local90 / local53 <= Static240.screenLowerX) { return; } @Pc(102) int local102 = local84 - local13 << 9; - if (local102 / local53 >= Static247.anInt5405) { + if (local102 / local53 >= Static247.screenUpperX) { return; } @Pc(118) int local118 = arg6 * arg2 - local31 * arg1 >> 16; @Pc(132) int local132 = local118 + (local13 * arg1 + local21 * arg2 >> 16) << 9; - if (local132 / local53 <= Static1.anInt4) { + if (local132 / local53 <= Static1.screenLowerY) { return; } @Pc(153) int local153 = local118 + (-local13 * arg1 + local17 * arg2 >> 16) << 9; - if (local153 / local53 >= Static148.anInt3535) { + if (local153 / local53 >= Static148.screenUpperY) { return; } @Pc(161) int local161 = 0; @@ -1745,14 +1745,14 @@ public final class GlModel extends Model { local1 = 0; @Pc(22) int local22 = 0; if (arg0 != -1) { - local1 = Rasteriser.anInterface1_2.method3238(arg0 & 0xFFFF); - local22 = Rasteriser.anInterface1_2.method3229(arg0 & 0xFFFF); + local1 = Rasteriser.textureProvider.method3238(arg0 & 0xFFFF); + local22 = Rasteriser.textureProvider.method3229(arg0 & 0xFFFF); } @Pc(41) int local41 = 0; @Pc(43) int local43 = 0; if (arg1 != -1) { - local41 = Rasteriser.anInterface1_2.method3238(arg1 & 0xFFFF); - local43 = Rasteriser.anInterface1_2.method3229(arg1 & 0xFFFF); + local41 = Rasteriser.textureProvider.method3238(arg1 & 0xFFFF); + local43 = Rasteriser.textureProvider.method3229(arg1 & 0xFFFF); } if (local1 != local41 || local22 != local43) { this.aClass127_1.aBoolean235 = false; @@ -3072,7 +3072,7 @@ public final class GlModel extends Model { GlRenderer.setTextureId(-1); Static27.setMaterial(0, 0); } else { - Rasteriser.anInterface1_2.method3227(local439 & 0xFFFF); + Rasteriser.textureProvider.method3227(local439 & 0xFFFF); } if (this.aClass127_5.aClass155_4 == null) { this.aClass127_5.aByteBuffer8.position(local427 * 12); @@ -3233,7 +3233,7 @@ public final class GlModel extends Model { @Pc(322) int local322 = Static237.anIntArray467[local297]; @Pc(326) int local326 = Static237.anIntArray467[local302]; if ((local246 - local248) * (local322 - local326) - (local322 - local318) * (local258 - local248) > 0) { - Rasteriser.method1921(local151.aByteArray18, local318, local322, local326, local246, local248, local258, local134); + Rasteriser.fillSpriteTriangle(local151.aByteArray18, local318, local322, local326, local246, local248, local258, local134); } } } diff --git a/client/src/main/java/GlRenderer.java b/client/src/main/java/GlRenderer.java index 06c0ad2..6ab1b5e 100644 --- a/client/src/main/java/GlRenderer.java +++ b/client/src/main/java/GlRenderer.java @@ -544,10 +544,10 @@ public final class GlRenderer { gl.glRotatef(arg7, 0.0F, 1.0F, 0.0F); } aBoolean266 = false; - Static240.anInt5334 = local7; - Static247.anInt5405 = local17; - Static1.anInt4 = local25; - Static148.anInt3535 = local35; + Static240.screenLowerX = local7; + Static247.screenUpperX = local17; + Static1.screenLowerY = local25; + Static148.screenUpperY = local35; } @OriginalMember(owner = "client!tf", name = "d", descriptor = "(Z)V") @@ -658,7 +658,7 @@ public final class GlRenderer { @Pc(8) GLCapabilities capabilities = new GLCapabilities(profile); if (numSamples > 0) { capabilities.setSampleBuffers(true); - capabilities.setNumSamples(numSamples); + capabilities.setNumSamples(numSamples * 4); } @Pc(18) GLDrawableFactory factory = GLDrawableFactory.getFactory(profile); AWTGraphicsConfiguration config = AWTGraphicsConfiguration.create(canvas.getGraphicsConfiguration(), capabilities, capabilities); diff --git a/client/src/main/java/GlSolidColorTexture.java b/client/src/main/java/GlSolidColorTexture.java index b7a2d99..2876813 100644 --- a/client/src/main/java/GlSolidColorTexture.java +++ b/client/src/main/java/GlSolidColorTexture.java @@ -25,7 +25,7 @@ public final class GlSolidColorTexture extends SecondaryNode { this.anInt5058 = local12[0]; this.anInt5059 = Static63.contextId; GlRenderer.setTextureId(this.anInt5058); - @Pc(32) int local32 = Rasteriser.anIntArray220[arg0]; + @Pc(32) int local32 = Rasteriser.palette[arg0]; @Pc(58) byte[] local58 = new byte[] { (byte) (local32 >> 16), (byte) (local32 >> 8), (byte) local32, -1 }; @Pc(61) ByteBuffer local61 = ByteBuffer.wrap(local58); local9.glTexImage2D(GL2.GL_TEXTURE_2D, 0, GL2.GL_RGBA, 1, 1, 0, GL2.GL_RGBA, GL2.GL_UNSIGNED_BYTE, local61); diff --git a/client/src/main/java/GlTexture.java b/client/src/main/java/GlTexture.java index 1406fee..382d86d 100644 --- a/client/src/main/java/GlTexture.java +++ b/client/src/main/java/GlTexture.java @@ -78,7 +78,7 @@ public final class GlTexture extends SecondaryNode { } @OriginalMember(owner = "client!uh", name = "a", descriptor = "(Lclient!m;IFLclient!ve;Z)[I") - public final int[] method4295(@OriginalArg(0) GlTextureProvider arg0, @OriginalArg(2) float arg1, @OriginalArg(3) Js5 arg2, @OriginalArg(4) boolean arg3) { + public final int[] method4295(@OriginalArg(0) TextureProvider arg0, @OriginalArg(2) float arg1, @OriginalArg(3) Js5 arg2, @OriginalArg(4) boolean arg3) { if (this.anIntArray481 == null || this.aFloat35 != arg1) { if (!this.aClass88_1.method2729(arg0, arg2)) { return null; @@ -167,7 +167,7 @@ public final class GlTexture extends SecondaryNode { } @OriginalMember(owner = "client!uh", name = "a", descriptor = "(Lclient!ve;Lclient!m;IZ)Z") - public final boolean method4296(@OriginalArg(0) Js5 arg0, @OriginalArg(1) GlTextureProvider arg1, @OriginalArg(3) boolean arg2) { + public final boolean method4296(@OriginalArg(0) Js5 arg0, @OriginalArg(1) TextureProvider arg1, @OriginalArg(3) boolean arg2) { if (!this.aClass88_1.method2729(arg1, arg0)) { return false; } @@ -184,12 +184,12 @@ public final class GlTexture extends SecondaryNode { @Pc(82) ByteBuffer pixels = ByteBuffer.wrap(this.aClass88_1.method2728(size, size, this.aBoolean288, arg1, 0.7D, arg0)); if (this.anInt5489 == 2) { // Old GLU code: - // @Pc(201) GLUgl2es1 local201 = new GLUgl2es1(); - // local201.gluBuild2DMipmaps(3553, 6408, size, size, 6408, 5121, pixels); - // gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_MIN_FILTER, GL2.GL_LINEAR_MIPMAP_LINEAR); - // gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_MAG_FILTER, GL2.GL_LINEAR); +// @Pc(201) GLUgl2es1 local201 = new GLUgl2es1(); +// local201.gluBuild2DMipmaps(3553, 6408, size, size, 6408, 5121, pixels); +// gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_MIN_FILTER, GL2.GL_LINEAR_MIPMAP_LINEAR); +// gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_MAG_FILTER, GL2.GL_LINEAR); - // New code (OpenGL 3.0+) w/ texStorage + // New code (OpenGL 4+?) w/ texStorage int num_mipmaps = 4; gl.glTexStorage2D(GL2.GL_TEXTURE_2D, num_mipmaps, GL2.GL_RGBA8, size, size); gl.glTexSubImage2D(GL2.GL_TEXTURE_2D, 0, 0, 0, size, size, GL2.GL_RGBA, GL2.GL_UNSIGNED_BYTE, pixels); @@ -263,7 +263,7 @@ public final class GlTexture extends SecondaryNode { } @OriginalMember(owner = "client!uh", name = "a", descriptor = "(ZZLclient!m;Lclient!ve;)[I") - public final int[] method4297(@OriginalArg(1) boolean arg0, @OriginalArg(2) GlTextureProvider arg1, @OriginalArg(3) Js5 arg2) { + public final int[] method4297(@OriginalArg(1) boolean arg0, @OriginalArg(2) TextureProvider arg1, @OriginalArg(3) Js5 arg2) { if (this.aClass88_1.method2729(arg1, arg2)) { @Pc(24) int local24 = arg0 ? 64 : 128; return this.aClass88_1.method2725(local24, this.aBoolean288, local24, 1.0D, arg2, arg1, false); @@ -273,7 +273,7 @@ public final class GlTexture extends SecondaryNode { } @OriginalMember(owner = "client!uh", name = "a", descriptor = "(ILclient!m;Lclient!ve;)Z") - public final boolean method4299(@OriginalArg(1) GlTextureProvider arg0, @OriginalArg(2) Js5 arg1) { + public final boolean method4299(@OriginalArg(1) TextureProvider arg0, @OriginalArg(2) Js5 arg1) { return this.aClass88_1.method2729(arg0, arg1); } diff --git a/client/src/main/java/Js5GlTextureProvider.java b/client/src/main/java/Js5GlTextureProvider.java index b610727..b0be3d1 100644 --- a/client/src/main/java/Js5GlTextureProvider.java +++ b/client/src/main/java/Js5GlTextureProvider.java @@ -4,7 +4,7 @@ import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; @OriginalClass("client!nk") -public final class Js5GlTextureProvider implements GlTextureProvider { +public final class Js5GlTextureProvider implements TextureProvider { @OriginalMember(owner = "client!nk", name = "z", descriptor = "Z") private boolean aBoolean200 = false; @@ -198,7 +198,7 @@ public final class Js5GlTextureProvider implements GlTextureProvider { @OriginalMember(owner = "client!nk", name = "a", descriptor = "(BI)Z") @Override - public final boolean method3226(@OriginalArg(1) int arg0) { + public final boolean isOpaque(@OriginalArg(1) int arg0) { return this.aBooleanArray91[arg0]; } @@ -249,13 +249,13 @@ public final class Js5GlTextureProvider implements GlTextureProvider { @OriginalMember(owner = "client!nk", name = "d", descriptor = "(II)I") @Override - public final int method3234(@OriginalArg(0) int arg0) { + public final int getAverageColor(@OriginalArg(0) int arg0) { return this.aShortArray59[arg0] & 0xFFFF; } @OriginalMember(owner = "client!nk", name = "b", descriptor = "(BI)Z") @Override - public final boolean method3233(@OriginalArg(1) int arg0) { + public final boolean isLowDetail(@OriginalArg(1) int arg0) { return this.aBoolean200 || this.aBooleanArray89[arg0]; } diff --git a/client/src/main/java/Light.java b/client/src/main/java/Light.java index 5b10106..550a888 100644 --- a/client/src/main/java/Light.java +++ b/client/src/main/java/Light.java @@ -85,7 +85,7 @@ public final class Light { for (local87 = 0; local87 < this.aShortArray30.length; local87++) { this.aShortArray30[local87] = (short) arg0.g2(); } - this.anInt2247 = Rasteriser.anIntArray220[arg0.g2()]; + this.anInt2247 = Rasteriser.palette[arg0.g2()]; local87 = arg0.g1(); this.anInt2249 = (local87 & 0xE0) << 3; this.anInt2243 = local87 & 0x1F; diff --git a/client/src/main/java/Rasteriser.java b/client/src/main/java/Rasteriser.java index 13ae75d..a87cede 100644 --- a/client/src/main/java/Rasteriser.java +++ b/client/src/main/java/Rasteriser.java @@ -5,87 +5,93 @@ import org.openrs2.deob.annotation.Pc; public final class Rasteriser { @OriginalMember(owner = "client!hf", name = "b", descriptor = "I") - public static int anInt2469; + public static int centerY; @OriginalMember(owner = "client!hf", name = "e", descriptor = "Lclient!m;") - public static GlTextureProvider anInterface1_2; + public static TextureProvider textureProvider; @OriginalMember(owner = "client!hf", name = "k", descriptor = "I") - private static int anInt2470; + private static int height; @OriginalMember(owner = "client!hf", name = "m", descriptor = "I") - public static int anInt2471; + public static int centerX; @OriginalMember(owner = "client!hf", name = "n", descriptor = "I") - public static int anInt2472; + public static int width; @OriginalMember(owner = "client!hf", name = "a", descriptor = "[I") - public static final int[] anIntArray220 = new int[65536]; + public static final int[] palette = new int[65536]; @OriginalMember(owner = "client!hf", name = "c", descriptor = "[I") - private static int[] anIntArray221 = new int[1024]; + private static int[] offsets = new int[1024]; @OriginalMember(owner = "client!hf", name = "d", descriptor = "Z") - public static boolean aBoolean134 = false; + public static boolean textureHasTransparency = false; @OriginalMember(owner = "client!hf", name = "i", descriptor = "Z") - private static boolean aBoolean135 = false; + private static boolean opaque = false; @OriginalMember(owner = "client!hf", name = "j", descriptor = "Z") - public static boolean aBoolean136 = true; + public static boolean jagged = true; @OriginalMember(owner = "client!hf", name = "l", descriptor = "Z") - private static boolean aBoolean137 = false; + private static boolean lowDetail = false; @OriginalMember(owner = "client!hf", name = "o", descriptor = "F") - private static float aFloat11 = 1.0F; + private static float brightness = 1.0F; @OriginalMember(owner = "client!hf", name = "p", descriptor = "Z") - public static boolean aBoolean138 = false; + public static boolean testX = false; @OriginalMember(owner = "client!hf", name = "q", descriptor = "I") - public static int anInt2473 = 0; + public static int alpha = 0; @OriginalMember(owner = "client!hf", name = "a", descriptor = "()V") - public static void method1908() { - method1925(Static129.anInt3145, Static129.anInt3147, Static129.anInt3148, Static129.anInt3149); + public static void prepare() { + prepareOffsets(Static129.clipLeft, Static129.clipTop, Static129.clipRight, Static129.clipBottom); } @OriginalMember(owner = "client!hf", name = "a", descriptor = "(IIIIIIIIIIIIIIIIIII)V") - public static void method1909(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4, @OriginalArg(5) int arg5, @OriginalArg(6) int arg6, @OriginalArg(7) int arg7, @OriginalArg(8) int arg8, @OriginalArg(9) int arg9, @OriginalArg(10) int arg10, @OriginalArg(11) int arg11, @OriginalArg(12) int arg12, @OriginalArg(13) int arg13, @OriginalArg(14) int arg14, @OriginalArg(15) int arg15, @OriginalArg(16) int arg16, @OriginalArg(17) int arg17, @OriginalArg(18) int arg18) { - @Pc(5) int[] local5 = anInterface1_2.method3232(arg18, aFloat11); - @Pc(12) int local12; - if (local5 == null) { - local12 = anInterface1_2.method3234(arg18); - method1928(arg0, arg1, arg2, arg3, arg4, arg5, method1910(local12, arg6), method1910(local12, arg7), method1910(local12, arg8)); + public static void fillTexturedTriangle(@OriginalArg(0) int yA, @OriginalArg(1) int yB, @OriginalArg(2) int yC, @OriginalArg(3) int xA, @OriginalArg(4) int xB, @OriginalArg(5) int xC, @OriginalArg(6) int colorA, @OriginalArg(7) int colorB, @OriginalArg(8) int colorC, @OriginalArg(9) int arg9, @OriginalArg(10) int arg10, @OriginalArg(11) int arg11, @OriginalArg(12) int arg12, @OriginalArg(13) int arg13, @OriginalArg(14) int arg14, @OriginalArg(15) int arg15, @OriginalArg(16) int arg16, @OriginalArg(17) int arg17, @OriginalArg(18) int textureId) { + @Pc(5) int[] texture = textureProvider.method3232(textureId, brightness); + if (texture == null) { + int averageColor = textureProvider.getAverageColor(textureId); + fillGouraudTriangle(yA, yB, yC, xA, xB, xC, multiplyLightness(averageColor, colorA), multiplyLightness(averageColor, colorB), multiplyLightness(averageColor, colorC)); return; } - aBoolean137 = anInterface1_2.method3233(arg18); - aBoolean135 = anInterface1_2.method3226(arg18); - local12 = arg4 - arg3; - @Pc(47) int local47 = arg1 - arg0; - @Pc(51) int local51 = arg5 - arg3; - @Pc(55) int local55 = arg2 - arg0; - @Pc(59) int local59 = arg7 - arg6; - @Pc(63) int local63 = arg8 - arg6; - @Pc(65) int local65 = 0; - if (arg1 != arg0) { - local65 = (arg4 - arg3 << 16) / (arg1 - arg0); + + lowDetail = textureProvider.isLowDetail(textureId); + opaque = textureProvider.isOpaque(textureId); + @Pc(12) int dxAB = xB - xA; + @Pc(47) int dyAB = yB - yA; + @Pc(51) int dxAC = xC - xA; + @Pc(55) int dyAC = yC - yA; + @Pc(59) int colorStepAB = colorB - colorA; + @Pc(63) int colorStepAC = colorC - colorA; + + @Pc(65) int xStepAB = 0; + if (yB != yA) { + xStepAB = (xB - xA << 16) / (yB - yA); } - @Pc(80) int local80 = 0; - if (arg2 != arg1) { - local80 = (arg5 - arg4 << 16) / (arg2 - arg1); + + @Pc(80) int xStepBC = 0; + if (yC != yB) { + xStepBC = (xC - xB << 16) / (yC - yB); } - @Pc(95) int local95 = 0; - if (arg2 != arg0) { - local95 = (arg3 - arg5 << 16) / (arg0 - arg2); + + @Pc(95) int xStepAC = 0; + if (yC != yA) { + xStepAC = (xA - xC << 16) / (yA - yC); } - @Pc(116) int local116 = local12 * local55 - local51 * local47; - if (local116 == 0) { + + @Pc(116) int length = dxAB * dyAC - dxAC * dyAB; + if (length == 0) { return; } - @Pc(131) int local131 = (local59 * local55 - local63 * local47 << 9) / local116; - @Pc(143) int local143 = (local63 * local12 - local59 * local51 << 9) / local116; + + @Pc(131) int colorStepA = (colorStepAB * dyAC - colorStepAC * dyAB << 9) / length; + @Pc(143) int colorStepB = (colorStepAC * dxAB - colorStepAB * dxAC << 9) / length; + @Pc(147) int local147 = arg9 - arg10; @Pc(151) int local151 = arg12 - arg13; @Pc(155) int local155 = arg15 - arg16; @@ -102,170 +108,184 @@ public final class Rasteriser { @Pc(247) int local247 = local155 * local163 - local151 * local167 << 5; @Pc(257) int local257 = local147 * local167 - local155 * local159 << 5; @Pc(336) int local336; - if (arg0 <= arg1 && arg0 <= arg2) { - if (arg0 < anInt2470) { - if (arg1 > anInt2470) { - arg1 = anInt2470; + + if (yA <= yB && yA <= yC) { + if (yA < height) { + if (yB > height) { + yB = height; } - if (arg2 > anInt2470) { - arg2 = anInt2470; + + if (yC > height) { + yC = height; } - arg6 = (arg6 << 9) + local131 - local131 * arg3; - if (arg1 < arg2) { - arg5 = arg3 <<= 0x10; - if (arg0 < 0) { - arg5 -= local95 * arg0; - arg3 -= local65 * arg0; - arg6 -= local143 * arg0; - arg0 = 0; + + colorA = (colorA << 9) + colorStepA - colorStepA * xA; + if (yB < yC) { + xC = xA <<= 0x10; + if (yA < 0) { + xC -= xStepAC * yA; + xA -= xStepAB * yA; + colorA -= colorStepB * yA; + yA = 0; } - arg4 <<= 0x10; - if (arg1 < 0) { - arg4 -= local80 * arg1; - arg1 = 0; + + xB <<= 0x10; + if (yB < 0) { + xB -= xStepBC * yB; + yB = 0; } - local336 = arg0 - anInt2469; + + local336 = yA - centerY; local177 += local197 * local336; local207 += local227 * local336; local237 += local257 * local336; - if (arg0 != arg1 && local95 < local65 || arg0 == arg1 && local95 > local80) { - arg2 -= arg1; - arg1 -= arg0; - arg0 = anIntArray221[arg0]; + if (yA != yB && xStepAC < xStepAB || yA == yB && xStepAC > xStepBC) { + yC -= yB; + yB -= yA; + yA = offsets[yA]; while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { return; } - method1917(Static129.anIntArray297, local5, arg0, arg5 >> 16, arg4 >> 16, arg6, local131, local177, local207, local237, local187, local217, local247); - arg5 += local95; - arg4 += local80; - arg6 += local143; - arg0 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yA, xC >> 16, xB >> 16, colorA, colorStepA, local177, local207, local237, local187, local217, local247); + xC += xStepAC; + xB += xStepBC; + colorA += colorStepB; + yA += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } - method1917(Static129.anIntArray297, local5, arg0, arg5 >> 16, arg3 >> 16, arg6, local131, local177, local207, local237, local187, local217, local247); - arg5 += local95; - arg3 += local65; - arg6 += local143; - arg0 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yA, xC >> 16, xA >> 16, colorA, colorStepA, local177, local207, local237, local187, local217, local247); + xC += xStepAC; + xA += xStepAB; + colorA += colorStepB; + yA += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } else { - arg2 -= arg1; - arg1 -= arg0; - arg0 = anIntArray221[arg0]; + yC -= yB; + yB -= yA; + yA = offsets[yA]; while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { return; } - method1917(Static129.anIntArray297, local5, arg0, arg4 >> 16, arg5 >> 16, arg6, local131, local177, local207, local237, local187, local217, local247); - arg5 += local95; - arg4 += local80; - arg6 += local143; - arg0 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yA, xB >> 16, xC >> 16, colorA, colorStepA, local177, local207, local237, local187, local217, local247); + xC += xStepAC; + xB += xStepBC; + colorA += colorStepB; + yA += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } - method1917(Static129.anIntArray297, local5, arg0, arg3 >> 16, arg5 >> 16, arg6, local131, local177, local207, local237, local187, local217, local247); - arg5 += local95; - arg3 += local65; - arg6 += local143; - arg0 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yA, xA >> 16, xC >> 16, colorA, colorStepA, local177, local207, local237, local187, local217, local247); + xC += xStepAC; + xA += xStepAB; + colorA += colorStepB; + yA += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } } else { - arg4 = arg3 <<= 0x10; - if (arg0 < 0) { - arg4 -= local95 * arg0; - arg3 -= local65 * arg0; - arg6 -= local143 * arg0; - arg0 = 0; + xB = xA <<= 0x10; + if (yA < 0) { + xB -= xStepAC * yA; + xA -= xStepAB * yA; + colorA -= colorStepB * yA; + yA = 0; } - arg5 <<= 0x10; - if (arg2 < 0) { - arg5 -= local80 * arg2; - arg2 = 0; + + xC <<= 0x10; + if (yC < 0) { + xC -= xStepBC * yC; + yC = 0; } - local336 = arg0 - anInt2469; + + local336 = yA - centerY; local177 += local197 * local336; local207 += local227 * local336; local237 += local257 * local336; - if ((arg0 == arg2 || local95 >= local65) && (arg0 != arg2 || local80 <= local65)) { - arg1 -= arg2; - arg2 -= arg0; - arg0 = anIntArray221[arg0]; + if ((yA == yC || xStepAC >= xStepAB) && (yA != yC || xStepBC <= xStepAB)) { + yB -= yC; + yC -= yA; + yA = offsets[yA]; while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { return; } - method1917(Static129.anIntArray297, local5, arg0, arg3 >> 16, arg5 >> 16, arg6, local131, local177, local207, local237, local187, local217, local247); - arg5 += local80; - arg3 += local65; - arg6 += local143; - arg0 += Static129.anInt3144; + drawTexturedScanline(Static129.pixels, texture, yA, xA >> 16, xC >> 16, colorA, colorStepA, local177, local207, local237, local187, local217, local247); + xC += xStepBC; + xA += xStepAB; + colorA += colorStepB; + yA += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } - method1917(Static129.anIntArray297, local5, arg0, arg3 >> 16, arg4 >> 16, arg6, local131, local177, local207, local237, local187, local217, local247); - arg4 += local95; - arg3 += local65; - arg6 += local143; - arg0 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yA, xA >> 16, xB >> 16, colorA, colorStepA, local177, local207, local237, local187, local217, local247); + xB += xStepAC; + xA += xStepAB; + colorA += colorStepB; + yA += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } else { - arg1 -= arg2; - arg2 -= arg0; - arg0 = anIntArray221[arg0]; + yB -= yC; + yC -= yA; + yA = offsets[yA]; while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { return; } - method1917(Static129.anIntArray297, local5, arg0, arg5 >> 16, arg3 >> 16, arg6, local131, local177, local207, local237, local187, local217, local247); - arg5 += local80; - arg3 += local65; - arg6 += local143; - arg0 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yA, xC >> 16, xA >> 16, colorA, colorStepA, local177, local207, local237, local187, local217, local247); + xC += xStepBC; + xA += xStepAB; + colorA += colorStepB; + yA += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } - method1917(Static129.anIntArray297, local5, arg0, arg4 >> 16, arg3 >> 16, arg6, local131, local177, local207, local237, local187, local217, local247); - arg4 += local95; - arg3 += local65; - arg6 += local143; - arg0 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yA, xB >> 16, xA >> 16, colorA, colorStepA, local177, local207, local237, local187, local217, local247); + xB += xStepAC; + xA += xStepAB; + colorA += colorStepB; + yA += Static129.width; local177 += local197; local207 += local227; local237 += local257; @@ -273,170 +293,184 @@ public final class Rasteriser { } } } - } else if (arg1 <= arg2) { - if (arg1 < anInt2470) { - if (arg2 > anInt2470) { - arg2 = anInt2470; + } else if (yB <= yC) { + if (yB < height) { + if (yC > height) { + yC = height; } - if (arg0 > anInt2470) { - arg0 = anInt2470; + + if (yA > height) { + yA = height; } - arg7 = (arg7 << 9) + local131 - local131 * arg4; - if (arg2 < arg0) { - arg3 = arg4 <<= 0x10; - if (arg1 < 0) { - arg3 -= local65 * arg1; - arg4 -= local80 * arg1; - arg7 -= local143 * arg1; - arg1 = 0; + + colorB = (colorB << 9) + colorStepA - colorStepA * xB; + if (yC < yA) { + xA = xB <<= 0x10; + if (yB < 0) { + xA -= xStepAB * yB; + xB -= xStepBC * yB; + colorB -= colorStepB * yB; + yB = 0; } - arg5 <<= 0x10; - if (arg2 < 0) { - arg5 -= local95 * arg2; - arg2 = 0; + + xC <<= 0x10; + if (yC < 0) { + xC -= xStepAC * yC; + yC = 0; } - local336 = arg1 - anInt2469; + + local336 = yB - centerY; local177 += local197 * local336; local207 += local227 * local336; local237 += local257 * local336; - if (arg1 != arg2 && local65 < local80 || arg1 == arg2 && local65 > local95) { - arg0 -= arg2; - arg2 -= arg1; - arg1 = anIntArray221[arg1]; + if (yB != yC && xStepAB < xStepBC || yB == yC && xStepAB > xStepAC) { + yA -= yC; + yC -= yB; + yB = offsets[yB]; while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { return; } - method1917(Static129.anIntArray297, local5, arg1, arg3 >> 16, arg5 >> 16, arg7, local131, local177, local207, local237, local187, local217, local247); - arg3 += local65; - arg5 += local95; - arg7 += local143; - arg1 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yB, xA >> 16, xC >> 16, colorB, colorStepA, local177, local207, local237, local187, local217, local247); + xA += xStepAB; + xC += xStepAC; + colorB += colorStepB; + yB += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } - method1917(Static129.anIntArray297, local5, arg1, arg3 >> 16, arg4 >> 16, arg7, local131, local177, local207, local237, local187, local217, local247); - arg3 += local65; - arg4 += local80; - arg7 += local143; - arg1 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yB, xA >> 16, xB >> 16, colorB, colorStepA, local177, local207, local237, local187, local217, local247); + xA += xStepAB; + xB += xStepBC; + colorB += colorStepB; + yB += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } else { - arg0 -= arg2; - arg2 -= arg1; - arg1 = anIntArray221[arg1]; + yA -= yC; + yC -= yB; + yB = offsets[yB]; while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { return; } - method1917(Static129.anIntArray297, local5, arg1, arg5 >> 16, arg3 >> 16, arg7, local131, local177, local207, local237, local187, local217, local247); - arg3 += local65; - arg5 += local95; - arg7 += local143; - arg1 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yB, xC >> 16, xA >> 16, colorB, colorStepA, local177, local207, local237, local187, local217, local247); + xA += xStepAB; + xC += xStepAC; + colorB += colorStepB; + yB += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } - method1917(Static129.anIntArray297, local5, arg1, arg4 >> 16, arg3 >> 16, arg7, local131, local177, local207, local237, local187, local217, local247); - arg3 += local65; - arg4 += local80; - arg7 += local143; - arg1 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yB, xB >> 16, xA >> 16, colorB, colorStepA, local177, local207, local237, local187, local217, local247); + xA += xStepAB; + xB += xStepBC; + colorB += colorStepB; + yB += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } } else { - arg5 = arg4 <<= 0x10; - if (arg1 < 0) { - arg5 -= local65 * arg1; - arg4 -= local80 * arg1; - arg7 -= local143 * arg1; - arg1 = 0; + xC = xB <<= 0x10; + if (yB < 0) { + xC -= xStepAB * yB; + xB -= xStepBC * yB; + colorB -= colorStepB * yB; + yB = 0; } - arg3 <<= 0x10; - if (arg0 < 0) { - arg3 -= local95 * arg0; - arg0 = 0; + + xA <<= 0x10; + if (yA < 0) { + xA -= xStepAC * yA; + yA = 0; } - local336 = arg1 - anInt2469; + + local336 = yB - centerY; local177 += local197 * local336; local207 += local227 * local336; local237 += local257 * local336; - if (local65 < local80) { - arg2 -= arg0; - arg0 -= arg1; - arg1 = anIntArray221[arg1]; + if (xStepAB < xStepBC) { + yC -= yA; + yA -= yB; + yB = offsets[yB]; while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { return; } - method1917(Static129.anIntArray297, local5, arg1, arg3 >> 16, arg4 >> 16, arg7, local131, local177, local207, local237, local187, local217, local247); - arg3 += local95; - arg4 += local80; - arg7 += local143; - arg1 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yB, xA >> 16, xB >> 16, colorB, colorStepA, local177, local207, local237, local187, local217, local247); + xA += xStepAC; + xB += xStepBC; + colorB += colorStepB; + yB += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } - method1917(Static129.anIntArray297, local5, arg1, arg5 >> 16, arg4 >> 16, arg7, local131, local177, local207, local237, local187, local217, local247); - arg5 += local65; - arg4 += local80; - arg7 += local143; - arg1 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yB, xC >> 16, xB >> 16, colorB, colorStepA, local177, local207, local237, local187, local217, local247); + xC += xStepAB; + xB += xStepBC; + colorB += colorStepB; + yB += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } else { - arg2 -= arg0; - arg0 -= arg1; - arg1 = anIntArray221[arg1]; + yC -= yA; + yA -= yB; + yB = offsets[yB]; while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { return; } - method1917(Static129.anIntArray297, local5, arg1, arg4 >> 16, arg3 >> 16, arg7, local131, local177, local207, local237, local187, local217, local247); - arg3 += local95; - arg4 += local80; - arg7 += local143; - arg1 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yB, xB >> 16, xA >> 16, colorB, colorStepA, local177, local207, local237, local187, local217, local247); + xA += xStepAC; + xB += xStepBC; + colorB += colorStepB; + yB += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } - method1917(Static129.anIntArray297, local5, arg1, arg4 >> 16, arg5 >> 16, arg7, local131, local177, local207, local237, local187, local217, local247); - arg5 += local65; - arg4 += local80; - arg7 += local143; - arg1 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yB, xB >> 16, xC >> 16, colorB, colorStepA, local177, local207, local237, local187, local217, local247); + xC += xStepAB; + xB += xStepBC; + colorB += colorStepB; + yB += Static129.width; local177 += local197; local207 += local227; local237 += local257; @@ -444,169 +478,183 @@ public final class Rasteriser { } } } - } else if (arg2 < anInt2470) { - if (arg0 > anInt2470) { - arg0 = anInt2470; + } else if (yC < height) { + if (yA > height) { + yA = height; } - if (arg1 > anInt2470) { - arg1 = anInt2470; + + if (yB > height) { + yB = height; } - arg8 = (arg8 << 9) + local131 - local131 * arg5; - if (arg0 < arg1) { - arg4 = arg5 <<= 0x10; - if (arg2 < 0) { - arg4 -= local80 * arg2; - arg5 -= local95 * arg2; - arg8 -= local143 * arg2; - arg2 = 0; + + colorC = (colorC << 9) + colorStepA - colorStepA * xC; + if (yA < yB) { + xB = xC <<= 0x10; + if (yC < 0) { + xB -= xStepBC * yC; + xC -= xStepAC * yC; + colorC -= colorStepB * yC; + yC = 0; } - arg3 <<= 0x10; - if (arg0 < 0) { - arg3 -= local65 * arg0; - arg0 = 0; + + xA <<= 0x10; + if (yA < 0) { + xA -= xStepAB * yA; + yA = 0; } - local336 = arg2 - anInt2469; + + local336 = yC - centerY; local177 += local197 * local336; local207 += local227 * local336; local237 += local257 * local336; - if (local80 < local95) { - arg1 -= arg0; - arg0 -= arg2; - arg2 = anIntArray221[arg2]; + if (xStepBC < xStepAC) { + yB -= yA; + yA -= yC; + yC = offsets[yC]; while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { return; } - method1917(Static129.anIntArray297, local5, arg2, arg4 >> 16, arg3 >> 16, arg8, local131, local177, local207, local237, local187, local217, local247); - arg4 += local80; - arg3 += local65; - arg8 += local143; - arg2 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yC, xB >> 16, xA >> 16, colorC, colorStepA, local177, local207, local237, local187, local217, local247); + xB += xStepBC; + xA += xStepAB; + colorC += colorStepB; + yC += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } - method1917(Static129.anIntArray297, local5, arg2, arg4 >> 16, arg5 >> 16, arg8, local131, local177, local207, local237, local187, local217, local247); - arg4 += local80; - arg5 += local95; - arg8 += local143; - arg2 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yC, xB >> 16, xC >> 16, colorC, colorStepA, local177, local207, local237, local187, local217, local247); + xB += xStepBC; + xC += xStepAC; + colorC += colorStepB; + yC += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } else { - arg1 -= arg0; - arg0 -= arg2; - arg2 = anIntArray221[arg2]; + yB -= yA; + yA -= yC; + yC = offsets[yC]; while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { return; } - method1917(Static129.anIntArray297, local5, arg2, arg3 >> 16, arg4 >> 16, arg8, local131, local177, local207, local237, local187, local217, local247); - arg4 += local80; - arg3 += local65; - arg8 += local143; - arg2 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yC, xA >> 16, xB >> 16, colorC, colorStepA, local177, local207, local237, local187, local217, local247); + xB += xStepBC; + xA += xStepAB; + colorC += colorStepB; + yC += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } - method1917(Static129.anIntArray297, local5, arg2, arg5 >> 16, arg4 >> 16, arg8, local131, local177, local207, local237, local187, local217, local247); - arg4 += local80; - arg5 += local95; - arg8 += local143; - arg2 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yC, xC >> 16, xB >> 16, colorC, colorStepA, local177, local207, local237, local187, local217, local247); + xB += xStepBC; + xC += xStepAC; + colorC += colorStepB; + yC += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } } else { - arg3 = arg5 <<= 0x10; - if (arg2 < 0) { - arg3 -= local80 * arg2; - arg5 -= local95 * arg2; - arg8 -= local143 * arg2; - arg2 = 0; + xA = xC <<= 0x10; + if (yC < 0) { + xA -= xStepBC * yC; + xC -= xStepAC * yC; + colorC -= colorStepB * yC; + yC = 0; } - arg4 <<= 0x10; - if (arg1 < 0) { - arg4 -= local65 * arg1; - arg1 = 0; + + xB <<= 0x10; + if (yB < 0) { + xB -= xStepAB * yB; + yB = 0; } - local336 = arg2 - anInt2469; + + local336 = yC - centerY; local177 += local197 * local336; local207 += local227 * local336; local237 += local257 * local336; - if (local80 < local95) { - arg0 -= arg1; - arg1 -= arg2; - arg2 = anIntArray221[arg2]; + if (xStepBC < xStepAC) { + yA -= yB; + yB -= yC; + yC = offsets[yC]; while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { return; } - method1917(Static129.anIntArray297, local5, arg2, arg4 >> 16, arg5 >> 16, arg8, local131, local177, local207, local237, local187, local217, local247); - arg4 += local65; - arg5 += local95; - arg8 += local143; - arg2 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yC, xB >> 16, xC >> 16, colorC, colorStepA, local177, local207, local237, local187, local217, local247); + xB += xStepAB; + xC += xStepAC; + colorC += colorStepB; + yC += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } - method1917(Static129.anIntArray297, local5, arg2, arg3 >> 16, arg5 >> 16, arg8, local131, local177, local207, local237, local187, local217, local247); - arg3 += local80; - arg5 += local95; - arg8 += local143; - arg2 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yC, xA >> 16, xC >> 16, colorC, colorStepA, local177, local207, local237, local187, local217, local247); + xA += xStepBC; + xC += xStepAC; + colorC += colorStepB; + yC += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } else { - arg0 -= arg1; - arg1 -= arg2; - arg2 = anIntArray221[arg2]; + yA -= yB; + yB -= yC; + yC = offsets[yC]; while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { return; } - method1917(Static129.anIntArray297, local5, arg2, arg5 >> 16, arg4 >> 16, arg8, local131, local177, local207, local237, local187, local217, local247); - arg4 += local65; - arg5 += local95; - arg8 += local143; - arg2 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yC, xC >> 16, xB >> 16, colorC, colorStepA, local177, local207, local237, local187, local217, local247); + xB += xStepAB; + xC += xStepAC; + colorC += colorStepB; + yC += Static129.width; local177 += local197; local207 += local227; local237 += local257; } } - method1917(Static129.anIntArray297, local5, arg2, arg5 >> 16, arg3 >> 16, arg8, local131, local177, local207, local237, local187, local217, local247); - arg3 += local80; - arg5 += local95; - arg8 += local143; - arg2 += Static129.anInt3144; + + drawTexturedScanline(Static129.pixels, texture, yC, xC >> 16, xA >> 16, colorC, colorStepA, local177, local207, local237, local187, local217, local247); + xA += xStepBC; + xC += xStepAC; + colorC += colorStepB; + yC += Static129.width; local177 += local197; local207 += local227; local237 += local257; @@ -617,58 +665,64 @@ public final class Rasteriser { } @OriginalMember(owner = "client!hf", name = "a", descriptor = "(II)I") - private static int method1910(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) { - arg1 = arg1 * (arg0 & 0x7F) >> 7; - if (arg1 < 2) { - arg1 = 2; - } else if (arg1 > 126) { - arg1 = 126; + private static int multiplyLightness(@OriginalArg(0) int a, @OriginalArg(1) int b) { + b = b * (a & 0x7F) >> 7; + if (b < 2) { + b = 2; + } else if (b > 126) { + b = 126; } - return (arg0 & 0xFF80) + arg1; + return (a & 0xFF80) + b; } @OriginalMember(owner = "client!hf", name = "a", descriptor = "(F)V") - public static void method1911(@OriginalArg(0) float arg0) { - method1926(arg0); - method1924(); + public static void setBrightness(@OriginalArg(0) float brightness) { + randBrightness(brightness); + calculateBrightness(); } @OriginalMember(owner = "client!hf", name = "b", descriptor = "(IIIIIIIIIIIIIIIIIII)V") - public static void method1912(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4, @OriginalArg(5) int arg5, @OriginalArg(6) int arg6, @OriginalArg(7) int arg7, @OriginalArg(8) int arg8, @OriginalArg(9) int arg9, @OriginalArg(10) int arg10, @OriginalArg(11) int arg11, @OriginalArg(12) int arg12, @OriginalArg(13) int arg13, @OriginalArg(14) int arg14, @OriginalArg(15) int arg15, @OriginalArg(16) int arg16, @OriginalArg(17) int arg17, @OriginalArg(18) int arg18) { - @Pc(5) int[] local5 = anInterface1_2.method3232(arg18, aFloat11); - @Pc(15) int local15; - if (local5 == null || anInt2473 > 10) { - local15 = anInterface1_2.method3234(arg18); - aBoolean134 = true; - method1928(arg0, arg1, arg2, arg3, arg4, arg5, method1910(local15, arg6), method1910(local15, arg7), method1910(local15, arg8)); + public static void fillTexturedAlphaTriangle(@OriginalArg(0) int yA, @OriginalArg(1) int yB, @OriginalArg(2) int yC, @OriginalArg(3) int xA, @OriginalArg(4) int xB, @OriginalArg(5) int xC, @OriginalArg(6) int colorA, @OriginalArg(7) int colorB, @OriginalArg(8) int colorC, @OriginalArg(9) int arg9, @OriginalArg(10) int arg10, @OriginalArg(11) int arg11, @OriginalArg(12) int arg12, @OriginalArg(13) int arg13, @OriginalArg(14) int arg14, @OriginalArg(15) int arg15, @OriginalArg(16) int arg16, @OriginalArg(17) int arg17, @OriginalArg(18) int textureId) { + @Pc(5) int[] texture = textureProvider.method3232(textureId, brightness); + if (texture == null || alpha > 10) { + int average = textureProvider.getAverageColor(textureId); + textureHasTransparency = true; + fillGouraudTriangle(yA, yB, yC, xA, xB, xC, multiplyLightness(average, colorA), multiplyLightness(average, colorB), multiplyLightness(average, colorC)); return; } - aBoolean137 = anInterface1_2.method3233(arg18); - aBoolean135 = anInterface1_2.method3226(arg18); - local15 = arg4 - arg3; - @Pc(52) int local52 = arg1 - arg0; - @Pc(56) int local56 = arg5 - arg3; - @Pc(60) int local60 = arg2 - arg0; - @Pc(64) int local64 = arg7 - arg6; - @Pc(68) int local68 = arg8 - arg6; - @Pc(70) int local70 = 0; - if (arg1 != arg0) { - local70 = (arg4 - arg3 << 16) / (arg1 - arg0); + + lowDetail = textureProvider.isLowDetail(textureId); + opaque = textureProvider.isOpaque(textureId); + @Pc(15) int dxAB = xB - xA; + @Pc(52) int dyAB = yB - yA; + @Pc(56) int dxAC = xC - xA; + @Pc(60) int dyAC = yC - yA; + @Pc(64) int colorStepAB = colorB - colorA; + @Pc(68) int colorStepAC = colorC - colorA; + + @Pc(70) int xStepAB = 0; + if (yB != yA) { + xStepAB = (xB - xA << 16) / (yB - yA); } - @Pc(85) int local85 = 0; - if (arg2 != arg1) { - local85 = (arg5 - arg4 << 16) / (arg2 - arg1); + + @Pc(85) int xStepBC = 0; + if (yC != yB) { + xStepBC = (xC - xB << 16) / (yC - yB); } - @Pc(100) int local100 = 0; - if (arg2 != arg0) { - local100 = (arg3 - arg5 << 16) / (arg0 - arg2); + + @Pc(100) int xStepAC = 0; + if (yC != yA) { + xStepAC = (xA - xC << 16) / (yA - yC); } - @Pc(121) int local121 = local15 * local60 - local56 * local52; - if (local121 == 0) { + + @Pc(121) int length = dxAB * dyAC - dxAC * dyAB; + if (length == 0) { return; } - @Pc(136) int local136 = (local64 * local60 - local68 * local52 << 9) / local121; - @Pc(148) int local148 = (local68 * local15 - local64 * local56 << 9) / local121; + + @Pc(136) int colorStepA = (colorStepAB * dyAC - colorStepAC * dyAB << 9) / length; + @Pc(148) int colorStepB = (colorStepAC * dxAB - colorStepAB * dxAC << 9) / length; + @Pc(152) int local152 = arg9 - arg10; @Pc(156) int local156 = arg12 - arg13; @Pc(160) int local160 = arg15 - arg16; @@ -685,170 +739,184 @@ public final class Rasteriser { @Pc(252) int local252 = local160 * local168 - local156 * local172 << 8; @Pc(262) int local262 = local152 * local172 - local160 * local164 << 5; @Pc(341) int local341; - if (arg0 <= arg1 && arg0 <= arg2) { - if (arg0 < anInt2470) { - if (arg1 > anInt2470) { - arg1 = anInt2470; + + if (yA <= yB && yA <= yC) { + if (yA < height) { + if (yB > height) { + yB = height; } - if (arg2 > anInt2470) { - arg2 = anInt2470; + if (yC > height) { + yC = height; } - arg6 = (arg6 << 9) + local136 - local136 * arg3; - if (arg1 < arg2) { - arg5 = arg3 <<= 0x10; - if (arg0 < 0) { - arg5 -= local100 * arg0; - arg3 -= local70 * arg0; - arg6 -= local148 * arg0; - arg0 = 0; + + colorA = (colorA << 9) + colorStepA - colorStepA * xA; + if (yB < yC) { + xC = xA <<= 0x10; + if (yA < 0) { + xC -= xStepAC * yA; + xA -= xStepAB * yA; + colorA -= colorStepB * yA; + yA = 0; } - arg4 <<= 0x10; - if (arg1 < 0) { - arg4 -= local85 * arg1; - arg1 = 0; + + xB <<= 0x10; + if (yB < 0) { + xB -= xStepBC * yB; + yB = 0; } - local341 = arg0 - anInt2469; + + local341 = yA - centerY; local182 += local202 * local341; local212 += local232 * local341; local242 += local262 * local341; - if (arg0 != arg1 && local100 < local70 || arg0 == arg1 && local100 > local85) { - arg2 -= arg1; - arg1 -= arg0; - arg0 = anIntArray221[arg0]; + if (yA != yB && xStepAC < xStepAB || yA == yB && xStepAC > xStepBC) { + yC -= yB; + yB -= yA; + yA = offsets[yA]; while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { return; } - method1916(Static129.anIntArray297, local5, arg0, arg5 >> 16, arg4 >> 16, arg6, local136, local182, local212, local242, local192, local222, local252); - arg5 += local100; - arg4 += local85; - arg6 += local148; - arg0 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yA, xC >> 16, xB >> 16, colorA, colorStepA, local182, local212, local242, local192, local222, local252); + xC += xStepAC; + xB += xStepBC; + colorA += colorStepB; + yA += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } - method1916(Static129.anIntArray297, local5, arg0, arg5 >> 16, arg3 >> 16, arg6, local136, local182, local212, local242, local192, local222, local252); - arg5 += local100; - arg3 += local70; - arg6 += local148; - arg0 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yA, xC >> 16, xA >> 16, colorA, colorStepA, local182, local212, local242, local192, local222, local252); + xC += xStepAC; + xA += xStepAB; + colorA += colorStepB; + yA += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } else { - arg2 -= arg1; - arg1 -= arg0; - arg0 = anIntArray221[arg0]; + yC -= yB; + yB -= yA; + yA = offsets[yA]; while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { return; } - method1916(Static129.anIntArray297, local5, arg0, arg4 >> 16, arg5 >> 16, arg6, local136, local182, local212, local242, local192, local222, local252); - arg5 += local100; - arg4 += local85; - arg6 += local148; - arg0 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yA, xB >> 16, xC >> 16, colorA, colorStepA, local182, local212, local242, local192, local222, local252); + xC += xStepAC; + xB += xStepBC; + colorA += colorStepB; + yA += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } - method1916(Static129.anIntArray297, local5, arg0, arg3 >> 16, arg5 >> 16, arg6, local136, local182, local212, local242, local192, local222, local252); - arg5 += local100; - arg3 += local70; - arg6 += local148; - arg0 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yA, xA >> 16, xC >> 16, colorA, colorStepA, local182, local212, local242, local192, local222, local252); + xC += xStepAC; + xA += xStepAB; + colorA += colorStepB; + yA += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } } else { - arg4 = arg3 <<= 0x10; - if (arg0 < 0) { - arg4 -= local100 * arg0; - arg3 -= local70 * arg0; - arg6 -= local148 * arg0; - arg0 = 0; + xB = xA <<= 0x10; + if (yA < 0) { + xB -= xStepAC * yA; + xA -= xStepAB * yA; + colorA -= colorStepB * yA; + yA = 0; } - arg5 <<= 0x10; - if (arg2 < 0) { - arg5 -= local85 * arg2; - arg2 = 0; + + xC <<= 0x10; + if (yC < 0) { + xC -= xStepBC * yC; + yC = 0; } - local341 = arg0 - anInt2469; + + local341 = yA - centerY; local182 += local202 * local341; local212 += local232 * local341; local242 += local262 * local341; - if ((arg0 == arg2 || local100 >= local70) && (arg0 != arg2 || local85 <= local70)) { - arg1 -= arg2; - arg2 -= arg0; - arg0 = anIntArray221[arg0]; + if ((yA == yC || xStepAC >= xStepAB) && (yA != yC || xStepBC <= xStepAB)) { + yB -= yC; + yC -= yA; + yA = offsets[yA]; while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { return; } - method1916(Static129.anIntArray297, local5, arg0, arg3 >> 16, arg5 >> 16, arg6, local136, local182, local212, local242, local192, local222, local252); - arg5 += local85; - arg3 += local70; - arg6 += local148; - arg0 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yA, xA >> 16, xC >> 16, colorA, colorStepA, local182, local212, local242, local192, local222, local252); + xC += xStepBC; + xA += xStepAB; + colorA += colorStepB; + yA += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } - method1916(Static129.anIntArray297, local5, arg0, arg3 >> 16, arg4 >> 16, arg6, local136, local182, local212, local242, local192, local222, local252); - arg4 += local100; - arg3 += local70; - arg6 += local148; - arg0 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yA, xA >> 16, xB >> 16, colorA, colorStepA, local182, local212, local242, local192, local222, local252); + xB += xStepAC; + xA += xStepAB; + colorA += colorStepB; + yA += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } else { - arg1 -= arg2; - arg2 -= arg0; - arg0 = anIntArray221[arg0]; + yB -= yC; + yC -= yA; + yA = offsets[yA]; while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { return; } - method1916(Static129.anIntArray297, local5, arg0, arg5 >> 16, arg3 >> 16, arg6, local136, local182, local212, local242, local192, local222, local252); - arg5 += local85; - arg3 += local70; - arg6 += local148; - arg0 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yA, xC >> 16, xA >> 16, colorA, colorStepA, local182, local212, local242, local192, local222, local252); + xC += xStepBC; + xA += xStepAB; + colorA += colorStepB; + yA += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } - method1916(Static129.anIntArray297, local5, arg0, arg4 >> 16, arg3 >> 16, arg6, local136, local182, local212, local242, local192, local222, local252); - arg4 += local100; - arg3 += local70; - arg6 += local148; - arg0 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yA, xB >> 16, xA >> 16, colorA, colorStepA, local182, local212, local242, local192, local222, local252); + xB += xStepAC; + xA += xStepAB; + colorA += colorStepB; + yA += Static129.width; local182 += local202; local212 += local232; local242 += local262; @@ -856,170 +924,182 @@ public final class Rasteriser { } } } - } else if (arg1 <= arg2) { - if (arg1 < anInt2470) { - if (arg2 > anInt2470) { - arg2 = anInt2470; + } else if (yB <= yC) { + if (yB < height) { + if (yC > height) { + yC = height; } - if (arg0 > anInt2470) { - arg0 = anInt2470; + if (yA > height) { + yA = height; } - arg7 = (arg7 << 9) + local136 - local136 * arg4; - if (arg2 < arg0) { - arg3 = arg4 <<= 0x10; - if (arg1 < 0) { - arg3 -= local70 * arg1; - arg4 -= local85 * arg1; - arg7 -= local148 * arg1; - arg1 = 0; + + colorB = (colorB << 9) + colorStepA - colorStepA * xB; + if (yC < yA) { + xA = xB <<= 0x10; + if (yB < 0) { + xA -= xStepAB * yB; + xB -= xStepBC * yB; + colorB -= colorStepB * yB; + yB = 0; } - arg5 <<= 0x10; - if (arg2 < 0) { - arg5 -= local100 * arg2; - arg2 = 0; + xC <<= 0x10; + if (yC < 0) { + xC -= xStepAC * yC; + yC = 0; } - local341 = arg1 - anInt2469; + + local341 = yB - centerY; local182 += local202 * local341; local212 += local232 * local341; local242 += local262 * local341; - if (arg1 != arg2 && local70 < local85 || arg1 == arg2 && local70 > local100) { - arg0 -= arg2; - arg2 -= arg1; - arg1 = anIntArray221[arg1]; + if (yB != yC && xStepAB < xStepBC || yB == yC && xStepAB > xStepAC) { + yA -= yC; + yC -= yB; + yB = offsets[yB]; while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { return; } - method1916(Static129.anIntArray297, local5, arg1, arg3 >> 16, arg5 >> 16, arg7, local136, local182, local212, local242, local192, local222, local252); - arg3 += local70; - arg5 += local100; - arg7 += local148; - arg1 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yB, xA >> 16, xC >> 16, colorB, colorStepA, local182, local212, local242, local192, local222, local252); + xA += xStepAB; + xC += xStepAC; + colorB += colorStepB; + yB += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } - method1916(Static129.anIntArray297, local5, arg1, arg3 >> 16, arg4 >> 16, arg7, local136, local182, local212, local242, local192, local222, local252); - arg3 += local70; - arg4 += local85; - arg7 += local148; - arg1 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yB, xA >> 16, xB >> 16, colorB, colorStepA, local182, local212, local242, local192, local222, local252); + xA += xStepAB; + xB += xStepBC; + colorB += colorStepB; + yB += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } else { - arg0 -= arg2; - arg2 -= arg1; - arg1 = anIntArray221[arg1]; + yA -= yC; + yC -= yB; + yB = offsets[yB]; while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { return; } - method1916(Static129.anIntArray297, local5, arg1, arg5 >> 16, arg3 >> 16, arg7, local136, local182, local212, local242, local192, local222, local252); - arg3 += local70; - arg5 += local100; - arg7 += local148; - arg1 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yB, xC >> 16, xA >> 16, colorB, colorStepA, local182, local212, local242, local192, local222, local252); + xA += xStepAB; + xC += xStepAC; + colorB += colorStepB; + yB += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } - method1916(Static129.anIntArray297, local5, arg1, arg4 >> 16, arg3 >> 16, arg7, local136, local182, local212, local242, local192, local222, local252); - arg3 += local70; - arg4 += local85; - arg7 += local148; - arg1 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yB, xB >> 16, xA >> 16, colorB, colorStepA, local182, local212, local242, local192, local222, local252); + xA += xStepAB; + xB += xStepBC; + colorB += colorStepB; + yB += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } } else { - arg5 = arg4 <<= 0x10; - if (arg1 < 0) { - arg5 -= local70 * arg1; - arg4 -= local85 * arg1; - arg7 -= local148 * arg1; - arg1 = 0; + xC = xB <<= 0x10; + if (yB < 0) { + xC -= xStepAB * yB; + xB -= xStepBC * yB; + colorB -= colorStepB * yB; + yB = 0; } - arg3 <<= 0x10; - if (arg0 < 0) { - arg3 -= local100 * arg0; - arg0 = 0; + + xA <<= 0x10; + if (yA < 0) { + xA -= xStepAC * yA; + yA = 0; } - local341 = arg1 - anInt2469; + + local341 = yB - centerY; local182 += local202 * local341; local212 += local232 * local341; local242 += local262 * local341; - if (local70 < local85) { - arg2 -= arg0; - arg0 -= arg1; - arg1 = anIntArray221[arg1]; + if (xStepAB < xStepBC) { + yC -= yA; + yA -= yB; + yB = offsets[yB]; while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { return; } - method1916(Static129.anIntArray297, local5, arg1, arg3 >> 16, arg4 >> 16, arg7, local136, local182, local212, local242, local192, local222, local252); - arg3 += local100; - arg4 += local85; - arg7 += local148; - arg1 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yB, xA >> 16, xB >> 16, colorB, colorStepA, local182, local212, local242, local192, local222, local252); + xA += xStepAC; + xB += xStepBC; + colorB += colorStepB; + yB += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } - method1916(Static129.anIntArray297, local5, arg1, arg5 >> 16, arg4 >> 16, arg7, local136, local182, local212, local242, local192, local222, local252); - arg5 += local70; - arg4 += local85; - arg7 += local148; - arg1 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yB, xC >> 16, xB >> 16, colorB, colorStepA, local182, local212, local242, local192, local222, local252); + xC += xStepAB; + xB += xStepBC; + colorB += colorStepB; + yB += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } else { - arg2 -= arg0; - arg0 -= arg1; - arg1 = anIntArray221[arg1]; + yC -= yA; + yA -= yB; + yB = offsets[yB]; while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { return; } - method1916(Static129.anIntArray297, local5, arg1, arg4 >> 16, arg3 >> 16, arg7, local136, local182, local212, local242, local192, local222, local252); - arg3 += local100; - arg4 += local85; - arg7 += local148; - arg1 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yB, xB >> 16, xA >> 16, colorB, colorStepA, local182, local212, local242, local192, local222, local252); + xA += xStepAC; + xB += xStepBC; + colorB += colorStepB; + yB += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } - method1916(Static129.anIntArray297, local5, arg1, arg4 >> 16, arg5 >> 16, arg7, local136, local182, local212, local242, local192, local222, local252); - arg5 += local70; - arg4 += local85; - arg7 += local148; - arg1 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yB, xB >> 16, xC >> 16, colorB, colorStepA, local182, local212, local242, local192, local222, local252); + xC += xStepAB; + xB += xStepBC; + colorB += colorStepB; + yB += Static129.width; local182 += local202; local212 += local232; local242 += local262; @@ -1027,169 +1107,181 @@ public final class Rasteriser { } } } - } else if (arg2 < anInt2470) { - if (arg0 > anInt2470) { - arg0 = anInt2470; + } else if (yC < height) { + if (yA > height) { + yA = height; } - if (arg1 > anInt2470) { - arg1 = anInt2470; + if (yB > height) { + yB = height; } - arg8 = (arg8 << 9) + local136 - local136 * arg5; - if (arg0 < arg1) { - arg4 = arg5 <<= 0x10; - if (arg2 < 0) { - arg4 -= local85 * arg2; - arg5 -= local100 * arg2; - arg8 -= local148 * arg2; - arg2 = 0; + + colorC = (colorC << 9) + colorStepA - colorStepA * xC; + if (yA < yB) { + xB = xC <<= 0x10; + if (yC < 0) { + xB -= xStepBC * yC; + xC -= xStepAC * yC; + colorC -= colorStepB * yC; + yC = 0; } - arg3 <<= 0x10; - if (arg0 < 0) { - arg3 -= local70 * arg0; - arg0 = 0; + xA <<= 0x10; + if (yA < 0) { + xA -= xStepAB * yA; + yA = 0; } - local341 = arg2 - anInt2469; + + local341 = yC - centerY; local182 += local202 * local341; local212 += local232 * local341; local242 += local262 * local341; - if (local85 < local100) { - arg1 -= arg0; - arg0 -= arg2; - arg2 = anIntArray221[arg2]; + if (xStepBC < xStepAC) { + yB -= yA; + yA -= yC; + yC = offsets[yC]; while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { return; } - method1916(Static129.anIntArray297, local5, arg2, arg4 >> 16, arg3 >> 16, arg8, local136, local182, local212, local242, local192, local222, local252); - arg4 += local85; - arg3 += local70; - arg8 += local148; - arg2 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yC, xB >> 16, xA >> 16, colorC, colorStepA, local182, local212, local242, local192, local222, local252); + xB += xStepBC; + xA += xStepAB; + colorC += colorStepB; + yC += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } - method1916(Static129.anIntArray297, local5, arg2, arg4 >> 16, arg5 >> 16, arg8, local136, local182, local212, local242, local192, local222, local252); - arg4 += local85; - arg5 += local100; - arg8 += local148; - arg2 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yC, xB >> 16, xC >> 16, colorC, colorStepA, local182, local212, local242, local192, local222, local252); + xB += xStepBC; + xC += xStepAC; + colorC += colorStepB; + yC += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } else { - arg1 -= arg0; - arg0 -= arg2; - arg2 = anIntArray221[arg2]; + yB -= yA; + yA -= yC; + yC = offsets[yC]; while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { return; } - method1916(Static129.anIntArray297, local5, arg2, arg3 >> 16, arg4 >> 16, arg8, local136, local182, local212, local242, local192, local222, local252); - arg4 += local85; - arg3 += local70; - arg8 += local148; - arg2 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yC, xA >> 16, xB >> 16, colorC, colorStepA, local182, local212, local242, local192, local222, local252); + xB += xStepBC; + xA += xStepAB; + colorC += colorStepB; + yC += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } - method1916(Static129.anIntArray297, local5, arg2, arg5 >> 16, arg4 >> 16, arg8, local136, local182, local212, local242, local192, local222, local252); - arg4 += local85; - arg5 += local100; - arg8 += local148; - arg2 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yC, xC >> 16, xB >> 16, colorC, colorStepA, local182, local212, local242, local192, local222, local252); + xB += xStepBC; + xC += xStepAC; + colorC += colorStepB; + yC += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } } else { - arg3 = arg5 <<= 0x10; - if (arg2 < 0) { - arg3 -= local85 * arg2; - arg5 -= local100 * arg2; - arg8 -= local148 * arg2; - arg2 = 0; + xA = xC <<= 0x10; + if (yC < 0) { + xA -= xStepBC * yC; + xC -= xStepAC * yC; + colorC -= colorStepB * yC; + yC = 0; } - arg4 <<= 0x10; - if (arg1 < 0) { - arg4 -= local70 * arg1; - arg1 = 0; + + xB <<= 0x10; + if (yB < 0) { + xB -= xStepAB * yB; + yB = 0; } - local341 = arg2 - anInt2469; + + local341 = yC - centerY; local182 += local202 * local341; local212 += local232 * local341; local242 += local262 * local341; - if (local85 < local100) { - arg0 -= arg1; - arg1 -= arg2; - arg2 = anIntArray221[arg2]; + if (xStepBC < xStepAC) { + yA -= yB; + yB -= yC; + yC = offsets[yC]; while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { return; } - method1916(Static129.anIntArray297, local5, arg2, arg4 >> 16, arg5 >> 16, arg8, local136, local182, local212, local242, local192, local222, local252); - arg4 += local70; - arg5 += local100; - arg8 += local148; - arg2 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yC, xB >> 16, xC >> 16, colorC, colorStepA, local182, local212, local242, local192, local222, local252); + xB += xStepAB; + xC += xStepAC; + colorC += colorStepB; + yC += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } - method1916(Static129.anIntArray297, local5, arg2, arg3 >> 16, arg5 >> 16, arg8, local136, local182, local212, local242, local192, local222, local252); - arg3 += local85; - arg5 += local100; - arg8 += local148; - arg2 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yC, xA >> 16, xC >> 16, colorC, colorStepA, local182, local212, local242, local192, local222, local252); + xA += xStepBC; + xC += xStepAC; + colorC += colorStepB; + yC += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } else { - arg0 -= arg1; - arg1 -= arg2; - arg2 = anIntArray221[arg2]; + yA -= yB; + yB -= yC; + yC = offsets[yC]; while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { return; } - method1916(Static129.anIntArray297, local5, arg2, arg5 >> 16, arg4 >> 16, arg8, local136, local182, local212, local242, local192, local222, local252); - arg4 += local70; - arg5 += local100; - arg8 += local148; - arg2 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yC, xC >> 16, xB >> 16, colorC, colorStepA, local182, local212, local242, local192, local222, local252); + xB += xStepAB; + xC += xStepAC; + colorC += colorStepB; + yC += Static129.width; local182 += local202; local212 += local232; local242 += local262; } } - method1916(Static129.anIntArray297, local5, arg2, arg5 >> 16, arg3 >> 16, arg8, local136, local182, local212, local242, local192, local222, local252); - arg3 += local85; - arg5 += local100; - arg8 += local148; - arg2 += Static129.anInt3144; + + drawTexturedAlphaScanline(Static129.pixels, texture, yC, xC >> 16, xA >> 16, colorC, colorStepA, local182, local212, local242, local192, local222, local252); + xA += xStepBC; + xC += xStepAC; + colorC += colorStepB; + yC += Static129.width; local182 += local202; local212 += local232; local242 += local262; @@ -1200,1120 +1292,1213 @@ public final class Rasteriser { } @OriginalMember(owner = "client!hf", name = "b", descriptor = "()I") - public static int method1913() { - return anIntArray221[0] % Static129.anInt3144; + public static int getOffsetRemainder() { + return offsets[0] % Static129.width; } @OriginalMember(owner = "client!hf", name = "a", descriptor = "(Lclient!m;)V") - public static void method1914(@OriginalArg(0) GlTextureProvider arg0) { - anInterface1_2 = arg0; + public static void unpackTextures(@OriginalArg(0) TextureProvider provider) { + textureProvider = provider; } @OriginalMember(owner = "client!hf", name = "c", descriptor = "()V") - public static void method1915() { - anInt2471 = anInt2472 / 2; - anInt2469 = anInt2470 / 2; - Static240.anInt5334 = -anInt2471; - Static247.anInt5405 = anInt2472 - anInt2471; - Static1.anInt4 = -anInt2469; - Static148.anInt3535 = anInt2470 - anInt2469; + public static void prepareOffsets() { + centerX = width / 2; + centerY = height / 2; + Static240.screenLowerX = -centerX; + Static247.screenUpperX = width - centerX; + Static1.screenLowerY = -centerY; + Static148.screenUpperY = height - centerY; } @OriginalMember(owner = "client!hf", name = "a", descriptor = "([I[IIIIIIIIIIIIII)V") - private static void method1916(@OriginalArg(0) int[] arg0, @OriginalArg(1) int[] arg1, @OriginalArg(4) int arg2, @OriginalArg(5) int arg3, @OriginalArg(6) int arg4, @OriginalArg(7) int arg5, @OriginalArg(8) int arg6, @OriginalArg(9) int arg7, @OriginalArg(10) int arg8, @OriginalArg(11) int arg9, @OriginalArg(12) int arg10, @OriginalArg(13) int arg11, @OriginalArg(14) int arg12) { - if (aBoolean138) { - if (arg4 > anInt2472) { - arg4 = anInt2472; + private static void drawTexturedAlphaScanline(@OriginalArg(0) int[] dst, @OriginalArg(1) int[] texels, @OriginalArg(4) int offset, @OriginalArg(5) int xA, @OriginalArg(6) int xB, @OriginalArg(7) int lightnessA, @OriginalArg(8) int lightnessB, @OriginalArg(9) int verticalA, @OriginalArg(10) int verticalB, @OriginalArg(11) int verticalC, @OriginalArg(12) int horizontalA, @OriginalArg(13) int horizontalB, @OriginalArg(14) int horizontalC) { + if (testX) { + if (xB > width) { + xB = width; } - if (arg3 < 0) { - arg3 = 0; + + if (xA < 0) { + xA = 0; } } - if (arg3 >= arg4) { + + if (xA >= xB) { return; } - arg2 += arg3; - arg5 += arg6 * arg3; - @Pc(28) int local28 = arg4 - arg3; - @Pc(140) int local140; - @Pc(128) int local128; - @Pc(68) int local68; - @Pc(72) int local72; - @Pc(99) int local99; - @Pc(103) int local103; - @Pc(62) int local62; - @Pc(34) int local34; - @Pc(154) int local154; - @Pc(114) int local114; - @Pc(157) int local157; - @Pc(136) int local136; - @Pc(42) int local42; - @Pc(50) int local50; - @Pc(58) int local58; - if (!aBoolean137) { - local34 = arg3 - anInt2471; - local42 = arg7 + (arg10 >> 3) * local34; - local50 = arg8 + (arg11 >> 3) * local34; - local58 = arg9 + (arg12 >> 3) * local34; - local62 = local58 >> 14; - if (local62 == 0) { - local68 = 0; - local72 = 0; + + offset += xA; + lightnessA += lightnessB * xA; + + @Pc(28) int length = xB - xA; + @Pc(140) int lightness; + @Pc(128) int uvStep; + @Pc(68) int uA; + @Pc(72) int vA; + @Pc(99) int uB; + @Pc(103) int vB; + @Pc(62) int c; + @Pc(34) int delta; + @Pc(154) int color; + @Pc(114) int uv; + + if (!lowDetail) { + delta = xA - centerX; + verticalA += (horizontalA >> 3) * delta; + verticalB += (horizontalB >> 3) * delta; + verticalC += (horizontalC >> 3) * delta; + + c = verticalC >> 14; + if (c == 0) { + uA = 0; + vA = 0; } else { - local68 = local42 / local62; - local72 = local50 / local62; + uA = verticalA / c; + vA = verticalB / c; } - arg7 = local42 + arg10; - arg8 = local50 + arg11; - arg9 = local58 + arg12; - local62 = arg9 >> 14; - if (local62 == 0) { - local99 = 0; - local103 = 0; + + verticalA = verticalA + horizontalA; + verticalB = verticalB + horizontalB; + verticalC = verticalC + horizontalC; + c = verticalC >> 14; + if (c == 0) { + uB = 0; + vB = 0; } else { - local99 = arg7 / local62; - local103 = arg8 / local62; + uB = verticalA / c; + vB = verticalB / c; } - local114 = (local68 << 18) + local72; - local128 = (local99 - local68 >> 3 << 18) + (local103 - local72 >> 3); - local28 >>= 0x3; - local136 = arg6 << 3; - local140 = arg5 >> 8; - if (aBoolean135) { - if (local28 > 0) { + + uv = (uA << 18) + vA; + uvStep = (uB - uA >> 3 << 18) + (vB - vA >> 3); + length >>= 3; + lightnessB <<= 3; + lightness = lightnessA >> 8; + if (opaque) { + if (length > 0) { do { - local154 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]; - local157 = arg2 + 1; - arg0[arg2] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - local154 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]; - arg0[local157++] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - local154 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]; - arg0[local157++] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - local154 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]; - arg0[local157++] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - local154 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]; - arg0[local157++] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - local154 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]; - arg0[local157++] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - local154 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]; - arg0[local157++] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - local154 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]; - arg2 = local157 + 1; - arg0[local157] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local68 = local99; - local72 = local103; - arg7 += arg10; - arg8 += arg11; - arg9 += arg12; - local62 = arg9 >> 14; - if (local62 == 0) { - local99 = 0; - local103 = 0; + color = texels[(uv & 0x3F80) + (uv >>> 25)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0x3F80) + (uv >>> 25)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0x3F80) + (uv >>> 25)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0x3F80) + (uv >>> 25)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0x3F80) + (uv >>> 25)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0x3F80) + (uv >>> 25)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0x3F80) + (uv >>> 25)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0x3F80) + (uv >>> 25)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + + uA = uB; + vA = vB; + + verticalA += horizontalA; + verticalB += horizontalB; + verticalC += horizontalC; + + c = verticalC >> 14; + if (c == 0) { + uB = 0; + vB = 0; } else { - local99 = arg7 / local62; - local103 = arg8 / local62; + uB = verticalA / c; + vB = verticalB / c; } - local114 = (local68 << 18) + local72; - local128 = (local99 - local68 >> 3 << 18) + (local103 - local72 >> 3); - arg5 += local136; - local140 = arg5 >> 8; - local28--; - } while (local28 > 0); + + uv = (uA << 18) + vA; + uvStep = (uB - uA >> 3 << 18) + (vB - vA >> 3); + lightnessA += lightnessB; + lightness = lightnessA >> 8; + length--; + } while (length > 0); } - local28 = arg4 - arg3 & 0x7; - if (local28 > 0) { + + length = xB - xA & 0x7; + if (length > 0) { do { - local154 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]; - arg0[arg2++] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - local28--; - } while (local28 > 0); + color = texels[(uv & 0x3F80) + (uv >>> 25)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + length--; + } while (length > 0); } } else { - if (local28 > 0) { + if (length > 0) { do { - @Pc(1470) int local1470; - if ((local1470 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]) != 0) { - arg0[arg2] = ((local1470 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local1470 & 0xFF00) * local140 & 0xFF0000) >> 8; + if ((color = texels[(uv & 0x3F80) + (uv >>> 25)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157 = arg2 + 1; - local114 += local128; - @Pc(1507) int local1507; - if ((local1507 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]) != 0) { - arg0[local157] = ((local1507 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local1507 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0x3F80) + (uv >>> 25)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(1544) int local1544; - if ((local1544 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]) != 0) { - arg0[local157] = ((local1544 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local1544 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0x3F80) + (uv >>> 25)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(1581) int local1581; - if ((local1581 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]) != 0) { - arg0[local157] = ((local1581 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local1581 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0x3F80) + (uv >>> 25)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(1618) int local1618; - if ((local1618 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]) != 0) { - arg0[local157] = ((local1618 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local1618 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0x3F80) + (uv >>> 25)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(1655) int local1655; - if ((local1655 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]) != 0) { - arg0[local157] = ((local1655 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local1655 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0x3F80) + (uv >>> 25)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(1692) int local1692; - if ((local1692 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]) != 0) { - arg0[local157] = ((local1692 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local1692 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0x3F80) + (uv >>> 25)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(1729) int local1729; - if ((local1729 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]) != 0) { - arg0[local157] = ((local1729 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local1729 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + + uv += uvStep; + if ((color = texels[(uv & 0x3F80) + (uv >>> 25)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - arg2 = local157 + 1; - local68 = local99; - local72 = local103; - arg7 += arg10; - arg8 += arg11; - arg9 += arg12; - local62 = arg9 >> 14; - if (local62 == 0) { - local99 = 0; - local103 = 0; + offset++; + + uA = uB; + vA = vB; + verticalA += horizontalA; + verticalB += horizontalB; + verticalC += horizontalC; + + c = verticalC >> 14; + if (c == 0) { + uB = 0; + vB = 0; } else { - local99 = arg7 / local62; - local103 = arg8 / local62; + uB = verticalA / c; + vB = verticalB / c; } - local114 = (local68 << 18) + local72; - local128 = (local99 - local68 >> 3 << 18) + (local103 - local72 >> 3); - arg5 += local136; - local140 = arg5 >> 8; - local28--; - } while (local28 > 0); + + uv = (uA << 18) + vA; + uvStep = (uB - uA >> 3 << 18) + (vB - vA >> 3); + lightnessA += lightnessB; + lightness = lightnessA >> 8; + length--; + } while (length > 0); } - local28 = arg4 - arg3 & 0x7; - if (local28 > 0) { + + length = xB - xA & 0x7; + if (length > 0) { do { - @Pc(1840) int local1840; - if ((local1840 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]) != 0) { - arg0[arg2] = ((local1840 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local1840 & 0xFF00) * local140 & 0xFF0000) >> 8; + if ((color = texels[(uv & 0x3F80) + (uv >>> 25)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - arg2++; - local114 += local128; - local28--; - } while (local28 > 0); + offset++; + uv += uvStep; + length--; + } while (length > 0); } } return; } - local34 = arg3 - anInt2471; - local42 = arg7 + (arg10 >> 3) * local34; - local50 = arg8 + (arg11 >> 3) * local34; - local58 = arg9 + (arg12 >> 3) * local34; - local62 = local58 >> 12; - if (local62 == 0) { - local68 = 0; - local72 = 0; + + delta = xA - centerX; + verticalA = verticalA + (horizontalA >> 3) * delta; + verticalB = verticalB + (horizontalB >> 3) * delta; + verticalC = verticalC + (horizontalC >> 3) * delta; + + c = verticalC >> 12; + if (c == 0) { + uA = 0; + vA = 0; } else { - local68 = local42 / local62; - local72 = local50 / local62; + uA = verticalA / c; + vA = verticalB / c; } - arg7 = local42 + arg10; - arg8 = local50 + arg11; - arg9 = local58 + arg12; - local62 = arg9 >> 12; - if (local62 == 0) { - local99 = 0; - local103 = 0; + + verticalA = verticalA + horizontalA; + verticalB = verticalB + horizontalB; + verticalC = verticalC + horizontalC; + + c = verticalC >> 12; + if (c == 0) { + uB = 0; + vB = 0; } else { - local99 = arg7 / local62; - local103 = arg8 / local62; + uB = verticalA / c; + vB = verticalB / c; } - local114 = (local68 << 20) + local72; - local128 = (local99 - local68 >> 3 << 20) + (local103 - local72 >> 3); - local28 >>= 0x3; - local136 = arg6 << 3; - local140 = arg5 >> 8; - if (aBoolean135) { - if (local28 > 0) { + + uv = (uA << 20) + vA; + uvStep = (uB - uA >> 3 << 20) + (vB - vA >> 3); + length >>= 0x3; + lightnessB <<= 3; + lightness = lightnessA >> 8; + + if (opaque) { + if (length > 0) { do { - local154 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]; - local157 = arg2 + 1; - arg0[arg2] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - @Pc(189) int local189 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]; - @Pc(192) int local192 = local157 + 1; - arg0[local157] = ((local189 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local189 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - @Pc(224) int local224 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]; - @Pc(227) int local227 = local192 + 1; - arg0[local192] = ((local224 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local224 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - @Pc(259) int local259 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]; - @Pc(262) int local262 = local227 + 1; - arg0[local227] = ((local259 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local259 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - @Pc(294) int local294 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]; - @Pc(297) int local297 = local262 + 1; - arg0[local262] = ((local294 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local294 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - @Pc(329) int local329 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]; - @Pc(332) int local332 = local297 + 1; - arg0[local297] = ((local329 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local329 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - @Pc(364) int local364 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]; - @Pc(367) int local367 = local332 + 1; - arg0[local332] = ((local364 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local364 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - @Pc(399) int local399 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]; - arg2 = local367 + 1; - arg0[local367] = ((local399 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local399 & 0xFF00) * local140 & 0xFF0000) >> 8; - local68 = local99; - local72 = local103; - arg7 += arg10; - arg8 += arg11; - arg9 += arg12; - local62 = arg9 >> 12; - if (local62 == 0) { - local99 = 0; - local103 = 0; + color = texels[(uv & 0xFC0) + (uv >>> 26)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0xFC0) + (uv >>> 26)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0xFC0) + (uv >>> 26)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0xFC0) + (uv >>> 26)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0xFC0) + (uv >>> 26)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0xFC0) + (uv >>> 26)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0xFC0) + (uv >>> 26)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0xFC0) + (uv >>> 26)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + + uA = uB; + vA = vB; + verticalA += horizontalA; + verticalB += horizontalB; + verticalC += horizontalC; + + c = verticalC >> 12; + if (c == 0) { + uB = 0; + vB = 0; } else { - local99 = arg7 / local62; - local103 = arg8 / local62; + uB = verticalA / c; + vB = verticalB / c; } - local114 = (local68 << 20) + local72; - local128 = (local99 - local68 >> 3 << 20) + (local103 - local72 >> 3); - arg5 += local136; - local140 = arg5 >> 8; - local28--; - } while (local28 > 0); + + uv = (uA << 20) + vA; + uvStep = (uB - uA >> 3 << 20) + (vB - vA >> 3); + lightnessA += lightnessB; + lightness = lightnessA >> 8; + length--; + } while (length > 0); } - local28 = arg4 - arg3 & 0x7; - if (local28 > 0) { + + length = xB - xA & 0x7; + if (length > 0) { do { - local154 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]; - arg0[arg2++] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - local28--; - } while (local28 > 0); + color = texels[(uv & 0xFC0) + (uv >>> 26)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + length--; + } while (length > 0); } return; } - if (local28 > 0) { + + if (length > 0) { do { - @Pc(550) int local550; - if ((local550 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]) != 0) { - arg0[arg2] = ((local550 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local550 & 0xFF00) * local140 & 0xFF0000) >> 8; + if ((color = texels[(uv & 0xFC0) + (uv >>> 26)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157 = arg2 + 1; - local114 += local128; - @Pc(587) int local587; - if ((local587 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]) != 0) { - arg0[local157] = ((local587 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local587 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0xFC0) + (uv >>> 26)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(624) int local624; - if ((local624 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]) != 0) { - arg0[local157] = ((local624 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local624 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0xFC0) + (uv >>> 26)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(661) int local661; - if ((local661 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]) != 0) { - arg0[local157] = ((local661 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local661 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0xFC0) + (uv >>> 26)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(698) int local698; - if ((local698 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]) != 0) { - arg0[local157] = ((local698 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local698 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0xFC0) + (uv >>> 26)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(735) int local735; - if ((local735 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]) != 0) { - arg0[local157] = ((local735 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local735 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0xFC0) + (uv >>> 26)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(772) int local772; - if ((local772 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]) != 0) { - arg0[local157] = ((local772 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local772 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0xFC0) + (uv >>> 26)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(809) int local809; - if ((local809 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]) != 0) { - arg0[local157] = ((local809 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local809 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0xFC0) + (uv >>> 26)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - arg2 = local157 + 1; - local68 = local99; - local72 = local103; - arg7 += arg10; - arg8 += arg11; - arg9 += arg12; - local62 = arg9 >> 12; - if (local62 == 0) { - local99 = 0; - local103 = 0; + offset++; + + uA = uB; + vA = vB; + verticalA += horizontalA; + verticalB += horizontalB; + verticalC += horizontalC; + + c = verticalC >> 12; + if (c == 0) { + uB = 0; + vB = 0; } else { - local99 = arg7 / local62; - local103 = arg8 / local62; + uB = verticalA / c; + vB = verticalB / c; } - local114 = (local68 << 20) + local72; - local128 = (local99 - local68 >> 3 << 20) + (local103 - local72 >> 3); - arg5 += local136; - local140 = arg5 >> 8; - local28--; - } while (local28 > 0); + + uv = (uA << 20) + vA; + uvStep = (uB - uA >> 3 << 20) + (vB - vA >> 3); + lightnessA += lightnessB; + lightness = lightnessA >> 8; + length--; + } while (length > 0); } - local28 = arg4 - arg3 & 0x7; - if (local28 <= 0) { + + length = xB - xA & 0x7; + if (length <= 0) { return; } + do { - @Pc(920) int local920; - if ((local920 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]) != 0) { - arg0[arg2] = ((local920 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local920 & 0xFF00) * local140 & 0xFF0000) >> 8; + if ((color = texels[(uv & 0xFC0) + (uv >>> 26)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - arg2++; - local114 += local128; - local28--; - } while (local28 > 0); + offset++; + uv += uvStep; + length--; + } while (length > 0); } @OriginalMember(owner = "client!hf", name = "b", descriptor = "([I[IIIIIIIIIIIIII)V") - private static void method1917(@OriginalArg(0) int[] arg0, @OriginalArg(1) int[] arg1, @OriginalArg(4) int arg2, @OriginalArg(5) int arg3, @OriginalArg(6) int arg4, @OriginalArg(7) int arg5, @OriginalArg(8) int arg6, @OriginalArg(9) int arg7, @OriginalArg(10) int arg8, @OriginalArg(11) int arg9, @OriginalArg(12) int arg10, @OriginalArg(13) int arg11, @OriginalArg(14) int arg12) { - if (aBoolean138) { - if (arg4 > anInt2472) { - arg4 = anInt2472; + private static void drawTexturedScanline(@OriginalArg(0) int[] dst, @OriginalArg(1) int[] texels, @OriginalArg(4) int offset, @OriginalArg(5) int xA, @OriginalArg(6) int xB, @OriginalArg(7) int lightnessA, @OriginalArg(8) int lightnessB, @OriginalArg(9) int verticalA, @OriginalArg(10) int verticalB, @OriginalArg(11) int verticalC, @OriginalArg(12) int horizontalA, @OriginalArg(13) int horizontalB, @OriginalArg(14) int horizontalC) { + if (testX) { + if (xB > width) { + xB = width; } - if (arg3 < 0) { - arg3 = 0; + + if (xA < 0) { + xA = 0; } } - if (arg3 >= arg4) { + + if (xA >= xB) { return; } - arg2 += arg3; - arg5 += arg6 * arg3; - @Pc(28) int local28 = arg4 - arg3; - @Pc(140) int local140; - @Pc(128) int local128; - @Pc(62) int local62; - @Pc(66) int local66; - @Pc(99) int local99; - @Pc(103) int local103; - @Pc(56) int local56; - @Pc(34) int local34; - @Pc(154) int local154; - @Pc(114) int local114; - @Pc(157) int local157; - @Pc(136) int local136; - @Pc(40) int local40; - @Pc(46) int local46; - @Pc(52) int local52; - if (!aBoolean137) { - local34 = arg3 - anInt2471; - local40 = arg7 + arg10 * local34; - local46 = arg8 + arg11 * local34; - local52 = arg9 + arg12 * local34; - local56 = local52 >> 14; - if (local56 == 0) { - local62 = 0; - local66 = 0; + + offset += xA; + lightnessA += lightnessB * xA; + + @Pc(28) int length = xB - xA; + @Pc(140) int lightness; + @Pc(128) int uvStep; + @Pc(62) int uA; + @Pc(66) int vA; + @Pc(99) int uB; + @Pc(103) int vB; + @Pc(56) int c; + @Pc(34) int delta; + @Pc(154) int color; + @Pc(114) int uv; + + if (!lowDetail) { + delta = xA - centerX; + verticalA += horizontalA * delta; + verticalB += horizontalB * delta; + verticalC += horizontalC * delta; + + c = verticalC >> 14; + if (c == 0) { + uA = 0; + vA = 0; } else { - local62 = local40 / local56; - local66 = local46 / local56; + uA = verticalA / c; + vA = verticalB / c; } - local40 += arg10 * local28; - local46 += arg11 * local28; - local52 += arg12 * local28; - local56 = local52 >> 14; - if (local56 == 0) { - local99 = 0; - local103 = 0; + + verticalA += horizontalA * length; + verticalB += horizontalB * length; + verticalC += horizontalC * length; + + c = verticalC >> 14; + if (c == 0) { + uB = 0; + vB = 0; } else { - local99 = local40 / local56; - local103 = local46 / local56; + uB = verticalA / c; + vB = verticalB / c; } - local114 = (local62 << 18) + local66; - local128 = ((local99 - local62) / local28 << 18) + (local103 - local66) / local28; - local28 >>= 0x3; - local136 = arg6 << 3; - local140 = arg5 >> 8; - if (aBoolean135) { - if (local28 > 0) { + + uv = (uA << 18) + vA; + uvStep = ((uB - uA) / length << 18) + (vB - vA) / length; + length >>= 0x3; + lightnessB <<= 3; + lightness = lightnessA >> 8; + + if (opaque) { + if (length > 0) { do { - local154 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]; - local157 = arg2 + 1; - arg0[arg2] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - local154 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]; - arg0[local157++] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - local154 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]; - arg0[local157++] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - local154 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]; - arg0[local157++] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - local154 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]; - arg0[local157++] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - local154 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]; - arg0[local157++] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - local154 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]; - arg0[local157++] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - local154 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]; - arg2 = local157 + 1; - arg0[local157] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - arg5 += local136; - local140 = arg5 >> 8; - local28--; - } while (local28 > 0); + color = texels[(uv & 0x3F80) + (uv >>> 25)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0x3F80) + (uv >>> 25)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0x3F80) + (uv >>> 25)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0x3F80) + (uv >>> 25)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0x3F80) + (uv >>> 25)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0x3F80) + (uv >>> 25)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0x3F80) + (uv >>> 25)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0x3F80) + (uv >>> 25)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + lightnessA += lightnessB; + lightness = lightnessA >> 8; + length--; + } while (length > 0); } - local28 = arg4 - arg3 & 0x7; - if (local28 > 0) { + + length = xB - xA & 0x7; + if (length > 0) { do { - local154 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]; - arg0[arg2++] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - local28--; - } while (local28 > 0); + color = texels[(uv & 0x3F80) + (uv >>> 25)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + length--; + } while (length > 0); } } else { - if (local28 > 0) { + if (length > 0) { do { - @Pc(1305) int local1305; - if ((local1305 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]) != 0) { - arg0[arg2] = ((local1305 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local1305 & 0xFF00) * local140 & 0xFF0000) >> 8; + if ((color = texels[(uv & 0x3F80) + (uv >>> 25)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157 = arg2 + 1; - local114 += local128; - @Pc(1342) int local1342; - if ((local1342 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]) != 0) { - arg0[local157] = ((local1342 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local1342 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0x3F80) + (uv >>> 25)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(1379) int local1379; - if ((local1379 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]) != 0) { - arg0[local157] = ((local1379 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local1379 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0x3F80) + (uv >>> 25)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(1416) int local1416; - if ((local1416 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]) != 0) { - arg0[local157] = ((local1416 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local1416 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0x3F80) + (uv >>> 25)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(1453) int local1453; - if ((local1453 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]) != 0) { - arg0[local157] = ((local1453 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local1453 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0x3F80) + (uv >>> 25)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(1490) int local1490; - if ((local1490 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]) != 0) { - arg0[local157] = ((local1490 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local1490 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0x3F80) + (uv >>> 25)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(1527) int local1527; - if ((local1527 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]) != 0) { - arg0[local157] = ((local1527 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local1527 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0x3F80) + (uv >>> 25)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(1564) int local1564; - if ((local1564 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]) != 0) { - arg0[local157] = ((local1564 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local1564 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0x3F80) + (uv >>> 25)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - arg2 = local157 + 1; - local114 += local128; - arg5 += local136; - local140 = arg5 >> 8; - local28--; - } while (local28 > 0); + offset++; + uv += uvStep; + + lightnessA += lightnessB; + lightness = lightnessA >> 8; + length--; + } while (length > 0); } - local28 = arg4 - arg3 & 0x7; - if (local28 > 0) { + + length = xB - xA & 0x7; + if (length > 0) { do { - @Pc(1620) int local1620; - if ((local1620 = arg1[(local114 & 0x3F80) + (local114 >>> 25)]) != 0) { - arg0[arg2] = ((local1620 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local1620 & 0xFF00) * local140 & 0xFF0000) >> 8; + if ((color = texels[(uv & 0x3F80) + (uv >>> 25)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - arg2++; - local114 += local128; - local28--; - } while (local28 > 0); + offset++; + + uv += uvStep; + length--; + } while (length > 0); } } return; } - local34 = arg3 - anInt2471; - local40 = arg7 + arg10 * local34; - local46 = arg8 + arg11 * local34; - local52 = arg9 + arg12 * local34; - local56 = local52 >> 12; - if (local56 == 0) { - local62 = 0; - local66 = 0; + + delta = xA - centerX; + verticalA = verticalA + horizontalA * delta; + verticalB = verticalB + horizontalB * delta; + verticalC = verticalC + horizontalC * delta; + + c = verticalC >> 12; + if (c == 0) { + uA = 0; + vA = 0; } else { - local62 = local40 / local56; - local66 = local46 / local56; + uA = verticalA / c; + vA = verticalB / c; } - local40 += arg10 * local28; - local46 += arg11 * local28; - local52 += arg12 * local28; - local56 = local52 >> 12; - if (local56 == 0) { - local99 = 0; - local103 = 0; + + verticalA += horizontalA * length; + verticalB += horizontalB * length; + verticalC += horizontalC * length; + c = verticalC >> 12; + if (c == 0) { + uB = 0; + vB = 0; } else { - local99 = local40 / local56; - local103 = local46 / local56; + uB = verticalA / c; + vB = verticalB / c; } - local114 = (local62 << 20) + local66; - local128 = ((local99 - local62) / local28 << 20) + (local103 - local66) / local28; - local28 >>= 0x3; - local136 = arg6 << 3; - local140 = arg5 >> 8; - if (aBoolean135) { - if (local28 > 0) { + + uv = (uA << 20) + vA; + uvStep = ((uB - uA) / length << 20) + (vB - vA) / length; + length >>= 0x3; + lightnessB = lightnessB << 3; + lightness = lightnessA >> 8; + + if (opaque) { + if (length > 0) { do { - local154 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]; - local157 = arg2 + 1; - arg0[arg2] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - @Pc(189) int local189 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]; - @Pc(192) int local192 = local157 + 1; - arg0[local157] = ((local189 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local189 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - @Pc(224) int local224 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]; - @Pc(227) int local227 = local192 + 1; - arg0[local192] = ((local224 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local224 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - @Pc(259) int local259 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]; - @Pc(262) int local262 = local227 + 1; - arg0[local227] = ((local259 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local259 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - @Pc(294) int local294 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]; - @Pc(297) int local297 = local262 + 1; - arg0[local262] = ((local294 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local294 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - @Pc(329) int local329 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]; - @Pc(332) int local332 = local297 + 1; - arg0[local297] = ((local329 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local329 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - @Pc(364) int local364 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]; - @Pc(367) int local367 = local332 + 1; - arg0[local332] = ((local364 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local364 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - @Pc(399) int local399 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]; - arg2 = local367 + 1; - arg0[local367] = ((local399 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local399 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - arg5 += local136; - local140 = arg5 >> 8; - local28--; - } while (local28 > 0); + color = texels[(uv & 0xFC0) + (uv >>> 26)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0xFC0) + (uv >>> 26)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0xFC0) + (uv >>> 26)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0xFC0) + (uv >>> 26)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0xFC0) + (uv >>> 26)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0xFC0) + (uv >>> 26)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0xFC0) + (uv >>> 26)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + color = texels[(uv & 0xFC0) + (uv >>> 26)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + + lightnessA += lightnessB; + lightness = lightnessA >> 8; + length--; + } while (length > 0); } - local28 = arg4 - arg3 & 0x7; - if (local28 > 0) { + + length = xB - xA & 0x7; + if (length > 0) { do { - local154 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]; - arg0[arg2++] = ((local154 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local154 & 0xFF00) * local140 & 0xFF0000) >> 8; - local114 += local128; - local28--; - } while (local28 > 0); + color = texels[(uv & 0xFC0) + (uv >>> 26)]; + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; + uv += uvStep; + length--; + } while (length > 0); } return; } - if (local28 > 0) { + + if (length > 0) { do { - @Pc(495) int local495; - if ((local495 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]) != 0) { - arg0[arg2] = ((local495 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local495 & 0xFF00) * local140 & 0xFF0000) >> 8; + if ((color = texels[(uv & 0xFC0) + (uv >>> 26)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157 = arg2 + 1; - local114 += local128; - @Pc(532) int local532; - if ((local532 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]) != 0) { - arg0[local157] = ((local532 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local532 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0xFC0) + (uv >>> 26)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(569) int local569; - if ((local569 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]) != 0) { - arg0[local157] = ((local569 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local569 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0xFC0) + (uv >>> 26)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(606) int local606; - if ((local606 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]) != 0) { - arg0[local157] = ((local606 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local606 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0xFC0) + (uv >>> 26)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(643) int local643; - if ((local643 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]) != 0) { - arg0[local157] = ((local643 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local643 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0xFC0) + (uv >>> 26)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(680) int local680; - if ((local680 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]) != 0) { - arg0[local157] = ((local680 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local680 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0xFC0) + (uv >>> 26)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(717) int local717; - if ((local717 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]) != 0) { - arg0[local157] = ((local717 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local717 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0xFC0) + (uv >>> 26)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - local157++; - local114 += local128; - @Pc(754) int local754; - if ((local754 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]) != 0) { - arg0[local157] = ((local754 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local754 & 0xFF00) * local140 & 0xFF0000) >> 8; + offset++; + uv += uvStep; + + if ((color = texels[(uv & 0xFC0) + (uv >>> 26)]) != 0) { + dst[offset] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - arg2 = local157 + 1; - local114 += local128; - arg5 += local136; - local140 = arg5 >> 8; - local28--; - } while (local28 > 0); + uv += uvStep; + + lightnessA += lightnessB; + lightness = lightnessA >> 8; + length--; + } while (length > 0); } - local28 = arg4 - arg3 & 0x7; - if (local28 <= 0) { + + length = xB - xA & 0x7; + if (length <= 0) { return; } + do { - @Pc(810) int local810; - if ((local810 = arg1[(local114 & 0xFC0) + (local114 >>> 26)]) != 0) { - arg0[arg2] = ((local810 & 0xFF00FF) * local140 & 0xFF00FF00) + ((local810 & 0xFF00) * local140 & 0xFF0000) >> 8; + if ((color = texels[(uv & 0xFC0) + (uv >>> 26)]) != 0) { + dst[offset++] = ((color & 0xFF00FF) * lightness & 0xFF00FF00) + ((color & 0xFF00) * lightness & 0xFF0000) >> 8; } - arg2++; - local114 += local128; - local28--; - } while (local28 > 0); + + uv += uvStep; + length--; + } while (length > 0); } @OriginalMember(owner = "client!hf", name = "a", descriptor = "(IIIIIII)V") - public static void method1918(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4, @OriginalArg(5) int arg5, @OriginalArg(6) int arg6) { - @Pc(1) int local1 = 0; - if (arg1 != arg0) { - local1 = (arg4 - arg3 << 16) / (arg1 - arg0); + public static void fillTriangle(@OriginalArg(0) int yA, @OriginalArg(1) int yB, @OriginalArg(2) int yC, @OriginalArg(3) int xA, @OriginalArg(4) int xB, @OriginalArg(5) int xC, @OriginalArg(6) int color) { + @Pc(1) int mAB = 0; + if (yB != yA) { + mAB = (xB - xA << 16) / (yB - yA); } - @Pc(16) int local16 = 0; - if (arg2 != arg1) { - local16 = (arg5 - arg4 << 16) / (arg2 - arg1); + + @Pc(16) int mBC = 0; + if (yC != yB) { + mBC = (xC - xB << 16) / (yC - yB); } - @Pc(31) int local31 = 0; - if (arg2 != arg0) { - local31 = (arg3 - arg5 << 16) / (arg0 - arg2); + + @Pc(31) int mAC = 0; + if (yC != yA) { + mAC = (xA - xC << 16) / (yA - yC); } - if (arg0 <= arg1 && arg0 <= arg2) { - if (arg0 < anInt2470) { - if (arg1 > anInt2470) { - arg1 = anInt2470; + + if (yA <= yB && yA <= yC) { + if (yA < height) { + if (yB > height) { + yB = height; } - if (arg2 > anInt2470) { - arg2 = anInt2470; + + if (yC > height) { + yC = height; } - if (arg1 < arg2) { - arg5 = arg3 <<= 0x10; - if (arg0 < 0) { - arg5 -= local31 * arg0; - arg3 -= local1 * arg0; - arg0 = 0; + + if (yB < yC) { + xC = xA <<= 0x10; + if (yA < 0) { + xC -= mAC * yA; + xA -= mAB * yA; + yA = 0; } - arg4 <<= 0x10; - if (arg1 < 0) { - arg4 -= local16 * arg1; - arg1 = 0; + + xB <<= 0x10; + if (yB < 0) { + xB -= mBC * yB; + yB = 0; } - if (arg0 != arg1 && local31 < local1 || arg0 == arg1 && local31 > local16) { - arg2 -= arg1; - arg1 -= arg0; - arg0 = anIntArray221[arg0]; + + if (yA != yB && mAC < mAB || yA == yB && mAC > mBC) { + yC -= yB; + yB -= yA; + yA = offsets[yA]; while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { return; } - method1923(Static129.anIntArray297, arg0, arg6, arg5 >> 16, arg4 >> 16); - arg5 += local31; - arg4 += local16; - arg0 += Static129.anInt3144; + + drawScanline(Static129.pixels, yA, color, xC >> 16, xB >> 16); + xC += mAC; + xB += mBC; + yA += Static129.width; } } - method1923(Static129.anIntArray297, arg0, arg6, arg5 >> 16, arg3 >> 16); - arg5 += local31; - arg3 += local1; - arg0 += Static129.anInt3144; + + drawScanline(Static129.pixels, yA, color, xC >> 16, xA >> 16); + xC += mAC; + xA += mAB; + yA += Static129.width; } } else { - arg2 -= arg1; - arg1 -= arg0; - arg0 = anIntArray221[arg0]; + yC -= yB; + yB -= yA; + yA = offsets[yA]; while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { return; } - method1923(Static129.anIntArray297, arg0, arg6, arg4 >> 16, arg5 >> 16); - arg5 += local31; - arg4 += local16; - arg0 += Static129.anInt3144; + + drawScanline(Static129.pixels, yA, color, xB >> 16, xC >> 16); + xC += mAC; + xB += mBC; + yA += Static129.width; } } - method1923(Static129.anIntArray297, arg0, arg6, arg3 >> 16, arg5 >> 16); - arg5 += local31; - arg3 += local1; - arg0 += Static129.anInt3144; + + drawScanline(Static129.pixels, yA, color, xA >> 16, xC >> 16); + xC += mAC; + xA += mAB; + yA += Static129.width; } } } else { - arg4 = arg3 <<= 0x10; - if (arg0 < 0) { - arg4 -= local31 * arg0; - arg3 -= local1 * arg0; - arg0 = 0; + xB = xA <<= 0x10; + if (yA < 0) { + xB -= mAC * yA; + xA -= mAB * yA; + yA = 0; } - arg5 <<= 0x10; - if (arg2 < 0) { - arg5 -= local16 * arg2; - arg2 = 0; + + xC <<= 0x10; + if (yC < 0) { + xC -= mBC * yC; + yC = 0; } - if (arg0 != arg2 && local31 < local1 || arg0 == arg2 && local16 > local1) { - arg1 -= arg2; - arg2 -= arg0; - arg0 = anIntArray221[arg0]; + + if (yA != yC && mAC < mAB || yA == yC && mBC > mAB) { + yB -= yC; + yC -= yA; + yA = offsets[yA]; while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { return; } - method1923(Static129.anIntArray297, arg0, arg6, arg5 >> 16, arg3 >> 16); - arg5 += local16; - arg3 += local1; - arg0 += Static129.anInt3144; + + drawScanline(Static129.pixels, yA, color, xC >> 16, xA >> 16); + xC += mBC; + xA += mAB; + yA += Static129.width; } } - method1923(Static129.anIntArray297, arg0, arg6, arg4 >> 16, arg3 >> 16); - arg4 += local31; - arg3 += local1; - arg0 += Static129.anInt3144; + + drawScanline(Static129.pixels, yA, color, xB >> 16, xA >> 16); + xB += mAC; + xA += mAB; + yA += Static129.width; } } else { - arg1 -= arg2; - arg2 -= arg0; - arg0 = anIntArray221[arg0]; + yB -= yC; + yC -= yA; + yA = offsets[yA]; while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { return; } - method1923(Static129.anIntArray297, arg0, arg6, arg3 >> 16, arg5 >> 16); - arg5 += local16; - arg3 += local1; - arg0 += Static129.anInt3144; + + drawScanline(Static129.pixels, yA, color, xA >> 16, xC >> 16); + xC += mBC; + xA += mAB; + yA += Static129.width; } } - method1923(Static129.anIntArray297, arg0, arg6, arg3 >> 16, arg4 >> 16); - arg4 += local31; - arg3 += local1; - arg0 += Static129.anInt3144; + + drawScanline(Static129.pixels, yA, color, xA >> 16, xB >> 16); + xB += mAC; + xA += mAB; + yA += Static129.width; } } } } - } else if (arg1 <= arg2) { - if (arg1 < anInt2470) { - if (arg2 > anInt2470) { - arg2 = anInt2470; + } else if (yB <= yC) { + if (yB < height) { + if (yC > height) { + yC = height; } - if (arg0 > anInt2470) { - arg0 = anInt2470; + + if (yA > height) { + yA = height; } - if (arg2 < arg0) { - arg3 = arg4 <<= 0x10; - if (arg1 < 0) { - arg3 -= local1 * arg1; - arg4 -= local16 * arg1; - arg1 = 0; + + if (yC < yA) { + xA = xB <<= 0x10; + if (yB < 0) { + xA -= mAB * yB; + xB -= mBC * yB; + yB = 0; } - arg5 <<= 0x10; - if (arg2 < 0) { - arg5 -= local31 * arg2; - arg2 = 0; + + xC <<= 0x10; + if (yC < 0) { + xC -= mAC * yC; + yC = 0; } - if (arg1 != arg2 && local1 < local16 || arg1 == arg2 && local1 > local31) { - arg0 -= arg2; - arg2 -= arg1; - arg1 = anIntArray221[arg1]; + + if (yB != yC && mAB < mBC || yB == yC && mAB > mAC) { + yA -= yC; + yC -= yB; + yB = offsets[yB]; while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { return; } - method1923(Static129.anIntArray297, arg1, arg6, arg3 >> 16, arg5 >> 16); - arg3 += local1; - arg5 += local31; - arg1 += Static129.anInt3144; + + drawScanline(Static129.pixels, yB, color, xA >> 16, xC >> 16); + xA += mAB; + xC += mAC; + yB += Static129.width; } } - method1923(Static129.anIntArray297, arg1, arg6, arg3 >> 16, arg4 >> 16); - arg3 += local1; - arg4 += local16; - arg1 += Static129.anInt3144; + + drawScanline(Static129.pixels, yB, color, xA >> 16, xB >> 16); + xA += mAB; + xB += mBC; + yB += Static129.width; } } else { - arg0 -= arg2; - arg2 -= arg1; - arg1 = anIntArray221[arg1]; + yA -= yC; + yC -= yB; + yB = offsets[yB]; while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { return; } - method1923(Static129.anIntArray297, arg1, arg6, arg5 >> 16, arg3 >> 16); - arg3 += local1; - arg5 += local31; - arg1 += Static129.anInt3144; + + drawScanline(Static129.pixels, yB, color, xC >> 16, xA >> 16); + xA += mAB; + xC += mAC; + yB += Static129.width; } } - method1923(Static129.anIntArray297, arg1, arg6, arg4 >> 16, arg3 >> 16); - arg3 += local1; - arg4 += local16; - arg1 += Static129.anInt3144; + + drawScanline(Static129.pixels, yB, color, xB >> 16, xA >> 16); + xA += mAB; + xB += mBC; + yB += Static129.width; } } } else { - arg5 = arg4 <<= 0x10; - if (arg1 < 0) { - arg5 -= local1 * arg1; - arg4 -= local16 * arg1; - arg1 = 0; + xC = xB <<= 0x10; + if (yB < 0) { + xC -= mAB * yB; + xB -= mBC * yB; + yB = 0; } - arg3 <<= 0x10; - if (arg0 < 0) { - arg3 -= local31 * arg0; - arg0 = 0; + + xA <<= 0x10; + if (yA < 0) { + xA -= mAC * yA; + yA = 0; } - if (local1 < local16) { - arg2 -= arg0; - arg0 -= arg1; - arg1 = anIntArray221[arg1]; + + if (mAB < mBC) { + yC -= yA; + yA -= yB; + yB = offsets[yB]; while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { return; } - method1923(Static129.anIntArray297, arg1, arg6, arg3 >> 16, arg4 >> 16); - arg3 += local31; - arg4 += local16; - arg1 += Static129.anInt3144; + + drawScanline(Static129.pixels, yB, color, xA >> 16, xB >> 16); + xA += mAC; + xB += mBC; + yB += Static129.width; } } - method1923(Static129.anIntArray297, arg1, arg6, arg5 >> 16, arg4 >> 16); - arg5 += local1; - arg4 += local16; - arg1 += Static129.anInt3144; + + drawScanline(Static129.pixels, yB, color, xC >> 16, xB >> 16); + xC += mAB; + xB += mBC; + yB += Static129.width; } } else { - arg2 -= arg0; - arg0 -= arg1; - arg1 = anIntArray221[arg1]; + yC -= yA; + yA -= yB; + yB = offsets[yB]; while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { return; } - method1923(Static129.anIntArray297, arg1, arg6, arg4 >> 16, arg3 >> 16); - arg3 += local31; - arg4 += local16; - arg1 += Static129.anInt3144; + + drawScanline(Static129.pixels, yB, color, xB >> 16, xA >> 16); + xA += mAC; + xB += mBC; + yB += Static129.width; } } - method1923(Static129.anIntArray297, arg1, arg6, arg4 >> 16, arg5 >> 16); - arg5 += local1; - arg4 += local16; - arg1 += Static129.anInt3144; + + drawScanline(Static129.pixels, yB, color, xB >> 16, xC >> 16); + xC += mAB; + xB += mBC; + yB += Static129.width; } } } } - } else if (arg2 < anInt2470) { - if (arg0 > anInt2470) { - arg0 = anInt2470; + } else if (yC < height) { + if (yA > height) { + yA = height; } - if (arg1 > anInt2470) { - arg1 = anInt2470; + + if (yB > height) { + yB = height; } - if (arg0 < arg1) { - arg4 = arg5 <<= 0x10; - if (arg2 < 0) { - arg4 -= local16 * arg2; - arg5 -= local31 * arg2; - arg2 = 0; + + if (yA < yB) { + xB = xC <<= 0x10; + if (yC < 0) { + xB -= mBC * yC; + xC -= mAC * yC; + yC = 0; } - arg3 <<= 0x10; - if (arg0 < 0) { - arg3 -= local1 * arg0; - arg0 = 0; + + xA <<= 0x10; + if (yA < 0) { + xA -= mAB * yA; + yA = 0; } - if (local16 < local31) { - arg1 -= arg0; - arg0 -= arg2; - arg2 = anIntArray221[arg2]; + + if (mBC < mAC) { + yB -= yA; + yA -= yC; + yC = offsets[yC]; while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { return; } - method1923(Static129.anIntArray297, arg2, arg6, arg4 >> 16, arg3 >> 16); - arg4 += local16; - arg3 += local1; - arg2 += Static129.anInt3144; + + drawScanline(Static129.pixels, yC, color, xB >> 16, xA >> 16); + xB += mBC; + xA += mAB; + yC += Static129.width; } } - method1923(Static129.anIntArray297, arg2, arg6, arg4 >> 16, arg5 >> 16); - arg4 += local16; - arg5 += local31; - arg2 += Static129.anInt3144; + + drawScanline(Static129.pixels, yC, color, xB >> 16, xC >> 16); + xB += mBC; + xC += mAC; + yC += Static129.width; } } else { - arg1 -= arg0; - arg0 -= arg2; - arg2 = anIntArray221[arg2]; + yB -= yA; + yA -= yC; + yC = offsets[yC]; while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { return; } - method1923(Static129.anIntArray297, arg2, arg6, arg3 >> 16, arg4 >> 16); - arg4 += local16; - arg3 += local1; - arg2 += Static129.anInt3144; + + drawScanline(Static129.pixels, yC, color, xA >> 16, xB >> 16); + xB += mBC; + xA += mAB; + yC += Static129.width; } } - method1923(Static129.anIntArray297, arg2, arg6, arg5 >> 16, arg4 >> 16); - arg4 += local16; - arg5 += local31; - arg2 += Static129.anInt3144; + + drawScanline(Static129.pixels, yC, color, xC >> 16, xB >> 16); + xB += mBC; + xC += mAC; + yC += Static129.width; } } } else { - arg3 = arg5 <<= 0x10; - if (arg2 < 0) { - arg3 -= local16 * arg2; - arg5 -= local31 * arg2; - arg2 = 0; + xA = xC <<= 0x10; + if (yC < 0) { + xA -= mBC * yC; + xC -= mAC * yC; + yC = 0; } - arg4 <<= 0x10; - if (arg1 < 0) { - arg4 -= local1 * arg1; - arg1 = 0; + + xB <<= 0x10; + if (yB < 0) { + xB -= mAB * yB; + yB = 0; } - if (local16 < local31) { - arg0 -= arg1; - arg1 -= arg2; - arg2 = anIntArray221[arg2]; + + if (mBC < mAC) { + yA -= yB; + yB -= yC; + yC = offsets[yC]; while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { return; } - method1923(Static129.anIntArray297, arg2, arg6, arg4 >> 16, arg5 >> 16); - arg4 += local1; - arg5 += local31; - arg2 += Static129.anInt3144; + + drawScanline(Static129.pixels, yC, color, xB >> 16, xC >> 16); + xB += mAB; + xC += mAC; + yC += Static129.width; } } - method1923(Static129.anIntArray297, arg2, arg6, arg3 >> 16, arg5 >> 16); - arg3 += local16; - arg5 += local31; - arg2 += Static129.anInt3144; + + drawScanline(Static129.pixels, yC, color, xA >> 16, xC >> 16); + xA += mBC; + xC += mAC; + yC += Static129.width; } } else { - arg0 -= arg1; - arg1 -= arg2; - arg2 = anIntArray221[arg2]; + yA -= yB; + yB -= yC; + yC = offsets[yC]; while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { return; } - method1923(Static129.anIntArray297, arg2, arg6, arg5 >> 16, arg4 >> 16); - arg4 += local1; - arg5 += local31; - arg2 += Static129.anInt3144; + + drawScanline(Static129.pixels, yC, color, xC >> 16, xB >> 16); + xB += mAB; + xC += mAC; + yC += Static129.width; } } - method1923(Static129.anIntArray297, arg2, arg6, arg5 >> 16, arg3 >> 16); - arg3 += local16; - arg5 += local31; - arg2 += Static129.anInt3144; + + drawScanline(Static129.pixels, yC, color, xC >> 16, xA >> 16); + xA += mBC; + xC += mAC; + yC += Static129.width; } } } @@ -2321,136 +2506,150 @@ public final class Rasteriser { } @OriginalMember(owner = "client!hf", name = "b", descriptor = "(II)V") - public static void method1919(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) { - @Pc(3) int local3 = anIntArray221[0]; - @Pc(7) int local7 = local3 / Static129.anInt3144; - @Pc(13) int local13 = local3 - local7 * Static129.anInt3144; - anInt2471 = arg0 - local13; - anInt2469 = arg1 - local7; - Static240.anInt5334 = -anInt2471; - Static247.anInt5405 = anInt2472 - anInt2471; - Static1.anInt4 = -anInt2469; - Static148.anInt3535 = anInt2470 - anInt2469; + public static void setBounds(@OriginalArg(0) int right, @OriginalArg(1) int bottom) { + @Pc(3) int offset = offsets[0]; + @Pc(7) int top = offset / Static129.width; + @Pc(13) int left = offset - top * Static129.width; + centerX = right - left; + centerY = bottom - top; + Static240.screenLowerX = -centerX; + Static247.screenUpperX = width - centerX; + Static1.screenLowerY = -centerY; + Static148.screenUpperY = height - centerY; } @OriginalMember(owner = "client!hf", name = "a", descriptor = "([IIIIIIII)V") - private static void method1920(@OriginalArg(0) int[] arg0, @OriginalArg(1) int arg1, @OriginalArg(4) int arg2, @OriginalArg(5) int arg3, @OriginalArg(6) int arg4, @OriginalArg(7) int arg5) { - if (aBoolean138) { - if (arg3 > anInt2472) { - arg3 = anInt2472; + private static void drawGouraudScanline(@OriginalArg(0) int[] pixels, @OriginalArg(1) int offset, @OriginalArg(4) int xA, @OriginalArg(5) int xB, @OriginalArg(6) int colorA, @OriginalArg(7) int colorStep) { + if (testX) { + if (xB > width) { + xB = width; } - if (arg2 < 0) { - arg2 = 0; + + if (xA < 0) { + xA = 0; } } - if (arg2 >= arg3) { + + if (xA >= xB) { return; } - arg1 += arg2; - arg4 += arg5 * arg2; - @Pc(98) int local98; - @Pc(102) int local102; - @Pc(138) int local138; - @Pc(32) int local32; - @Pc(46) int local46; - if (!aBoolean136) { - local32 = arg3 - arg2; - if (anInt2473 == 0) { + + offset += xA; + colorA += colorStep * xA; + @Pc(98) int alpha; + @Pc(102) int invAlpha; + @Pc(138) int srcColor; + @Pc(32) int length; + @Pc(46) int color; + + if (!jagged) { + length = xB - xA; + if (Rasteriser.alpha == 0) { do { - arg0[arg1++] = anIntArray220[arg4 >> 8]; - arg4 += arg5; - local32--; - } while (local32 > 0); + pixels[offset++] = palette[colorA >> 8]; + colorA += colorStep; + length--; + } while (length > 0); } else { - local98 = anInt2473; - local102 = 256 - anInt2473; + alpha = Rasteriser.alpha; + invAlpha = 256 - Rasteriser.alpha; + do { - local46 = anIntArray220[arg4 >> 8]; - arg4 += arg5; - @Pc(379) int local379 = ((local46 & 0xFF00FF) * local102 >> 8 & 0xFF00FF) + ((local46 & 0xFF00) * local102 >> 8 & 0xFF00); - local138 = arg0[arg1]; - arg0[arg1++] = local379 + ((local138 & 0xFF00FF) * local98 >> 8 & 0xFF00FF) + ((local138 & 0xFF00) * local98 >> 8 & 0xFF00); - local32--; - } while (local32 > 0); + color = palette[colorA >> 8]; + + colorA += colorStep; + color = ((color & 0xFF00FF) * invAlpha >> 8 & 0xFF00FF) + ((color & 0xFF00) * invAlpha >> 8 & 0xFF00); + + srcColor = pixels[offset]; + pixels[offset++] = color + ((srcColor & 0xFF00FF) * alpha >> 8 & 0xFF00FF) + ((srcColor & 0xFF00) * alpha >> 8 & 0xFF00); + + length--; + } while (length > 0); } - return; - } - local32 = arg3 - arg2 >> 2; - @Pc(36) int local36 = arg5 << 2; - @Pc(53) int local53; - if (anInt2473 == 0) { - if (local32 > 0) { + } else { + length = xB - xA >> 2; + colorStep <<= 2; + + if (Rasteriser.alpha == 0) { + if (length > 0) { + do { + color = palette[colorA >> 8]; + colorA += colorStep; + pixels[offset++] = color; + pixels[offset++] = color; + pixels[offset++] = color; + pixels[offset++] = color; + length--; + } while (length > 0); + } + + length = xB - xA & 0x3; + if (length > 0) { + color = palette[colorA >> 8]; + do { + pixels[offset++] = color; + length--; + } while (length > 0); + } + } else { + alpha = Rasteriser.alpha; + invAlpha = 256 - Rasteriser.alpha; + if (length > 0) { + do { + color = palette[colorA >> 8]; + + colorA += colorStep; + color = ((color & 0xFF00FF) * invAlpha >> 8 & 0xFF00FF) + ((color & 0xFF00) * invAlpha >> 8 & 0xFF00); + + srcColor = pixels[offset]; + pixels[offset++] = color + ((srcColor & 0xFF00FF) * alpha >> 8 & 0xFF00FF) + ((srcColor & 0xFF00) * alpha >> 8 & 0xFF00); + + srcColor = pixels[offset]; + pixels[offset++] = color + ((srcColor & 0xFF00FF) * alpha >> 8 & 0xFF00FF) + ((srcColor & 0xFF00) * alpha >> 8 & 0xFF00); + + srcColor = pixels[offset]; + pixels[offset++] = color + ((srcColor & 0xFF00FF) * alpha >> 8 & 0xFF00FF) + ((srcColor & 0xFF00) * alpha >> 8 & 0xFF00); + + srcColor = pixels[offset]; + pixels[offset++] = color + ((srcColor & 0xFF00FF) * alpha >> 8 & 0xFF00FF) + ((srcColor & 0xFF00) * alpha >> 8 & 0xFF00); + + length--; + } while (length > 0); + } + + length = xB - xA & 0x3; + if (length <= 0) { + return; + } + + color = palette[colorA >> 8]; + color = ((color & 0xFF00FF) * invAlpha >> 8 & 0xFF00FF) + ((color & 0xFF00) * invAlpha >> 8 & 0xFF00); do { - local46 = anIntArray220[arg4 >> 8]; - arg4 += local36; - local53 = arg1 + 1; - arg0[arg1] = local46; - @Pc(58) int local58 = local53 + 1; - arg0[local53] = local46; - @Pc(63) int local63 = local58 + 1; - arg0[local58] = local46; - arg1 = local63 + 1; - arg0[local63] = local46; - local32--; - } while (local32 > 0); + srcColor = pixels[offset]; + pixels[offset++] = color + ((srcColor & 0xFF00FF) * alpha >> 8 & 0xFF00FF) + ((srcColor & 0xFF00) * alpha >> 8 & 0xFF00); + length--; + } while (length > 0); } - local32 = arg3 - arg2 & 0x3; - if (local32 > 0) { - local46 = anIntArray220[arg4 >> 8]; - do { - arg0[arg1++] = local46; - local32--; - } while (local32 > 0); - } - return; } - local98 = anInt2473; - local102 = 256 - anInt2473; - if (local32 > 0) { - do { - local46 = anIntArray220[arg4 >> 8]; - arg4 += local36; - local46 = ((local46 & 0xFF00FF) * local102 >> 8 & 0xFF00FF) + ((local46 & 0xFF00) * local102 >> 8 & 0xFF00); - local138 = arg0[arg1]; - local53 = arg1 + 1; - arg0[arg1] = local46 + ((local138 & 0xFF00FF) * local98 >> 8 & 0xFF00FF) + ((local138 & 0xFF00) * local98 >> 8 & 0xFF00); - local138 = arg0[local53]; - arg0[local53++] = local46 + ((local138 & 0xFF00FF) * local98 >> 8 & 0xFF00FF) + ((local138 & 0xFF00) * local98 >> 8 & 0xFF00); - local138 = arg0[local53]; - arg0[local53++] = local46 + ((local138 & 0xFF00FF) * local98 >> 8 & 0xFF00FF) + ((local138 & 0xFF00) * local98 >> 8 & 0xFF00); - local138 = arg0[local53]; - arg1 = local53 + 1; - arg0[local53] = local46 + ((local138 & 0xFF00FF) * local98 >> 8 & 0xFF00FF) + ((local138 & 0xFF00) * local98 >> 8 & 0xFF00); - local32--; - } while (local32 > 0); - } - local32 = arg3 - arg2 & 0x3; - if (local32 <= 0) { - return; - } - local46 = anIntArray220[arg4 >> 8]; - local46 = ((local46 & 0xFF00FF) * local102 >> 8 & 0xFF00FF) + ((local46 & 0xFF00) * local102 >> 8 & 0xFF00); - do { - local138 = arg0[arg1]; - arg0[arg1++] = local46 + ((local138 & 0xFF00FF) * local98 >> 8 & 0xFF00FF) + ((local138 & 0xFF00) * local98 >> 8 & 0xFF00); - local32--; - } while (local32 > 0); } @OriginalMember(owner = "client!hf", name = "a", descriptor = "([BIIIIIII)V") - public static void method1921(@OriginalArg(0) byte[] arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4, @OriginalArg(5) int arg5, @OriginalArg(6) int arg6, @OriginalArg(7) int arg7) { + public static void fillSpriteTriangle(@OriginalArg(0) byte[] arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4, @OriginalArg(5) int arg5, @OriginalArg(6) int arg6, @OriginalArg(7) int arg7) { @Pc(1) int local1 = 0; if (arg2 != arg1) { local1 = (arg5 - arg4 << 16) / (arg2 - arg1); } + @Pc(16) int local16 = 0; if (arg3 != arg2) { local16 = (arg6 - arg5 << 16) / (arg3 - arg2); } + @Pc(31) int local31 = 0; if (arg3 != arg1) { local31 = (arg4 - arg6 << 16) / (arg1 - arg3); } + if (arg1 <= arg2 && arg1 <= arg3) { if (arg2 < arg3) { arg6 = arg4 <<= 0x10; @@ -2459,11 +2658,13 @@ public final class Rasteriser { arg4 -= local1 * arg1; arg1 = 0; } + arg5 <<= 0x10; if (arg2 < 0) { arg5 -= local16 * arg2; arg2 = 0; } + if ((arg1 == arg2 || local31 >= local1) && (arg1 != arg2 || local31 <= local16)) { arg3 -= arg2; arg2 -= arg1; @@ -2476,13 +2677,14 @@ public final class Rasteriser { if (arg3 < 0) { return; } - method1930(arg0, arg1, arg5 >> 16, arg6 >> 16); + drawSpriteScanline(arg0, arg1, arg5 >> 16, arg6 >> 16); arg6 += local31; arg5 += local16; arg1 += arg7; } } - method1930(arg0, arg1, arg4 >> 16, arg6 >> 16); + + drawSpriteScanline(arg0, arg1, arg4 >> 16, arg6 >> 16); arg6 += local31; arg4 += local1; arg1 += arg7; @@ -2499,13 +2701,14 @@ public final class Rasteriser { if (arg3 < 0) { return; } - method1930(arg0, arg1, arg6 >> 16, arg5 >> 16); + drawSpriteScanline(arg0, arg1, arg6 >> 16, arg5 >> 16); arg6 += local31; arg5 += local16; arg1 += arg7; } } - method1930(arg0, arg1, arg6 >> 16, arg4 >> 16); + + drawSpriteScanline(arg0, arg1, arg6 >> 16, arg4 >> 16); arg6 += local31; arg4 += local1; arg1 += arg7; @@ -2518,11 +2721,13 @@ public final class Rasteriser { arg4 -= local1 * arg1; arg1 = 0; } + arg6 <<= 0x10; if (arg3 < 0) { arg6 -= local16 * arg3; arg3 = 0; } + if ((arg1 == arg3 || local31 >= local1) && (arg1 != arg3 || local16 <= local1)) { arg2 -= arg3; arg3 -= arg1; @@ -2535,13 +2740,15 @@ public final class Rasteriser { if (arg2 < 0) { return; } - method1930(arg0, arg1, arg4 >> 16, arg6 >> 16); + + drawSpriteScanline(arg0, arg1, arg4 >> 16, arg6 >> 16); arg6 += local16; arg4 += local1; arg1 += arg7; } } - method1930(arg0, arg1, arg4 >> 16, arg5 >> 16); + + drawSpriteScanline(arg0, arg1, arg4 >> 16, arg5 >> 16); arg5 += local31; arg4 += local1; arg1 += arg7; @@ -2558,13 +2765,15 @@ public final class Rasteriser { if (arg2 < 0) { return; } - method1930(arg0, arg1, arg6 >> 16, arg4 >> 16); + + drawSpriteScanline(arg0, arg1, arg6 >> 16, arg4 >> 16); arg6 += local16; arg4 += local1; arg1 += arg7; } } - method1930(arg0, arg1, arg5 >> 16, arg4 >> 16); + + drawSpriteScanline(arg0, arg1, arg5 >> 16, arg4 >> 16); arg5 += local31; arg4 += local1; arg1 += arg7; @@ -2579,11 +2788,13 @@ public final class Rasteriser { arg5 -= local16 * arg2; arg2 = 0; } + arg6 <<= 0x10; if (arg3 < 0) { arg6 -= local31 * arg3; arg3 = 0; } + if (arg2 != arg3 && local1 < local16 || arg2 == arg3 && local1 > local31) { arg1 -= arg3; arg3 -= arg2; @@ -2596,13 +2807,14 @@ public final class Rasteriser { if (arg1 < 0) { return; } - method1930(arg0, arg2, arg4 >> 16, arg6 >> 16); + drawSpriteScanline(arg0, arg2, arg4 >> 16, arg6 >> 16); arg4 += local1; arg6 += local31; arg2 += arg7; } } - method1930(arg0, arg2, arg4 >> 16, arg5 >> 16); + + drawSpriteScanline(arg0, arg2, arg4 >> 16, arg5 >> 16); arg4 += local1; arg5 += local16; arg2 += arg7; @@ -2619,13 +2831,15 @@ public final class Rasteriser { if (arg1 < 0) { return; } - method1930(arg0, arg2, arg6 >> 16, arg4 >> 16); + + drawSpriteScanline(arg0, arg2, arg6 >> 16, arg4 >> 16); arg4 += local1; arg6 += local31; arg2 += arg7; } } - method1930(arg0, arg2, arg5 >> 16, arg4 >> 16); + + drawSpriteScanline(arg0, arg2, arg5 >> 16, arg4 >> 16); arg4 += local1; arg5 += local16; arg2 += arg7; @@ -2638,11 +2852,13 @@ public final class Rasteriser { arg5 -= local16 * arg2; arg2 = 0; } + arg4 <<= 0x10; if (arg1 < 0) { arg4 -= local31 * arg1; arg1 = 0; } + if (local1 < local16) { arg3 -= arg1; arg1 -= arg2; @@ -2655,13 +2871,15 @@ public final class Rasteriser { if (arg3 < 0) { return; } - method1930(arg0, arg2, arg4 >> 16, arg5 >> 16); + + drawSpriteScanline(arg0, arg2, arg4 >> 16, arg5 >> 16); arg4 += local31; arg5 += local16; arg2 += arg7; } } - method1930(arg0, arg2, arg6 >> 16, arg5 >> 16); + + drawSpriteScanline(arg0, arg2, arg6 >> 16, arg5 >> 16); arg6 += local1; arg5 += local16; arg2 += arg7; @@ -2678,13 +2896,15 @@ public final class Rasteriser { if (arg3 < 0) { return; } - method1930(arg0, arg2, arg5 >> 16, arg4 >> 16); + + drawSpriteScanline(arg0, arg2, arg5 >> 16, arg4 >> 16); arg4 += local31; arg5 += local16; arg2 += arg7; } } - method1930(arg0, arg2, arg5 >> 16, arg6 >> 16); + + drawSpriteScanline(arg0, arg2, arg5 >> 16, arg6 >> 16); arg6 += local1; arg5 += local16; arg2 += arg7; @@ -2698,11 +2918,13 @@ public final class Rasteriser { arg6 -= local31 * arg3; arg3 = 0; } + arg4 <<= 0x10; if (arg1 < 0) { arg4 -= local1 * arg1; arg1 = 0; } + if (local16 < local31) { arg2 -= arg1; arg1 -= arg3; @@ -2715,13 +2937,15 @@ public final class Rasteriser { if (arg2 < 0) { return; } - method1930(arg0, arg3, arg5 >> 16, arg4 >> 16); + + drawSpriteScanline(arg0, arg3, arg5 >> 16, arg4 >> 16); arg5 += local16; arg4 += local1; arg3 += arg7; } } - method1930(arg0, arg3, arg5 >> 16, arg6 >> 16); + + drawSpriteScanline(arg0, arg3, arg5 >> 16, arg6 >> 16); arg5 += local16; arg6 += local31; arg3 += arg7; @@ -2738,13 +2962,15 @@ public final class Rasteriser { if (arg2 < 0) { return; } - method1930(arg0, arg3, arg4 >> 16, arg5 >> 16); + + drawSpriteScanline(arg0, arg3, arg4 >> 16, arg5 >> 16); arg5 += local16; arg4 += local1; arg3 += arg7; } } - method1930(arg0, arg3, arg6 >> 16, arg5 >> 16); + + drawSpriteScanline(arg0, arg3, arg6 >> 16, arg5 >> 16); arg5 += local16; arg6 += local31; arg3 += arg7; @@ -2757,11 +2983,13 @@ public final class Rasteriser { arg6 -= local31 * arg3; arg3 = 0; } + arg5 <<= 0x10; if (arg2 < 0) { arg5 -= local1 * arg2; arg2 = 0; } + if (local16 < local31) { arg1 -= arg2; arg2 -= arg3; @@ -2774,13 +3002,15 @@ public final class Rasteriser { if (arg1 < 0) { return; } - method1930(arg0, arg3, arg5 >> 16, arg6 >> 16); + + drawSpriteScanline(arg0, arg3, arg5 >> 16, arg6 >> 16); arg5 += local1; arg6 += local31; arg3 += arg7; } } - method1930(arg0, arg3, arg4 >> 16, arg6 >> 16); + + drawSpriteScanline(arg0, arg3, arg4 >> 16, arg6 >> 16); arg4 += local16; arg6 += local31; arg3 += arg7; @@ -2797,13 +3027,15 @@ public final class Rasteriser { if (arg1 < 0) { return; } - method1930(arg0, arg3, arg6 >> 16, arg5 >> 16); + + drawSpriteScanline(arg0, arg3, arg6 >> 16, arg5 >> 16); arg5 += local1; arg6 += local31; arg3 += arg7; } } - method1930(arg0, arg3, arg6 >> 16, arg4 >> 16); + + drawSpriteScanline(arg0, arg3, arg6 >> 16, arg4 >> 16); arg4 += local16; arg6 += local31; arg3 += arg7; @@ -2813,640 +3045,693 @@ public final class Rasteriser { } @OriginalMember(owner = "client!hf", name = "a", descriptor = "(III)V") - public static void method1922(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2) { - aBoolean138 = arg0 < 0 || arg0 > anInt2472 || arg1 < 0 || arg1 > anInt2472 || arg2 < 0 || arg2 > anInt2472; + public static void testPoints(@OriginalArg(0) int a, @OriginalArg(1) int b, @OriginalArg(2) int c) { + testX = a < 0 || a > width || b < 0 || b > width || c < 0 || c > width; } @OriginalMember(owner = "client!hf", name = "a", descriptor = "([IIIIII)V") - private static void method1923(@OriginalArg(0) int[] arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(4) int arg3, @OriginalArg(5) int arg4) { - if (aBoolean138) { - if (arg4 > anInt2472) { - arg4 = anInt2472; + private static void drawScanline(@OriginalArg(0) int[] pixels, @OriginalArg(1) int offset, @OriginalArg(2) int color, @OriginalArg(4) int xA, @OriginalArg(5) int xB) { + if (testX) { + if (xB > width) { + xB = width; } - if (arg3 < 0) { - arg3 = 0; + if (xA < 0) { + xA = 0; } } - if (arg3 >= arg4) { + + if (xA >= xB) { return; } - arg1 += arg3; - @Pc(24) int local24 = arg4 - arg3 >> 2; - @Pc(32) int local32; - if (anInt2473 == 0) { + + offset += xA; + @Pc(24) int length = xB - xA >> 2; + if (alpha == 0) { while (true) { - local24--; - if (local24 < 0) { - local24 = arg4 - arg3 & 0x3; + length--; + if (length < 0) { + length = xB - xA & 0x3; while (true) { - local24--; - if (local24 < 0) { + length--; + if (length < 0) { return; } - arg0[arg1++] = arg2; + pixels[offset++] = color; } } - local32 = arg1 + 1; - arg0[arg1] = arg2; - @Pc(37) int local37 = local32 + 1; - arg0[local32] = arg2; - @Pc(42) int local42 = local37 + 1; - arg0[local37] = arg2; - arg1 = local42 + 1; - arg0[local42] = arg2; + + pixels[offset++] = color; + pixels[offset++] = color; + pixels[offset++] = color; + pixels[offset++] = color; } - } else if (anInt2473 == 254) { + } else if (alpha == 254) { while (true) { - local24--; - if (local24 < 0) { - local24 = arg4 - arg3 & 0x3; + length--; + if (length < 0) { + length = xB - xA & 0x3; while (true) { - local24--; - if (local24 < 0) { + length--; + if (length < 0) { return; } - arg0[arg1++] = arg0[arg1]; + pixels[offset++] = pixels[offset]; } } - local32 = arg1 + 1; - arg0[arg1] = arg0[local32]; - arg0[local32++] = arg0[local32]; - arg0[local32++] = arg0[local32]; - arg1 = local32 + 1; - arg0[local32] = arg0[arg1]; + + pixels[offset++] = color; + pixels[offset++] = color; + pixels[offset++] = color; + pixels[offset++] = color; } } else { - @Pc(119) int local119 = anInt2473; - @Pc(123) int local123 = 256 - anInt2473; - @Pc(143) int local143 = ((arg2 & 0xFF00FF) * local123 >> 8 & 0xFF00FF) + ((arg2 & 0xFF00) * local123 >> 8 & 0xFF00); + @Pc(119) int alpha = Rasteriser.alpha; + @Pc(123) int invAlpha = 256 - Rasteriser.alpha; + @Pc(143) int sample = ((color & 0xFF00FF) * invAlpha >> 8 & 0xFF00FF) + ((color & 0xFF00) * invAlpha >> 8 & 0xFF00); + while (true) { - local24--; - @Pc(150) int local150; - if (local24 < 0) { - local24 = arg4 - arg3 & 0x3; + length--; + @Pc(150) int srcColor; + + if (length < 0) { + length = xB - xA & 0x3; while (true) { - local24--; - if (local24 < 0) { + length--; + if (length < 0) { return; } - local150 = arg0[arg1]; - arg0[arg1++] = local143 + ((local150 & 0xFF00FF) * local119 >> 8 & 0xFF00FF) + ((local150 & 0xFF00) * local119 >> 8 & 0xFF00); + + srcColor = pixels[offset]; + pixels[offset++] = sample + ((srcColor & 0xFF00FF) * alpha >> 8 & 0xFF00FF) + ((srcColor & 0xFF00) * alpha >> 8 & 0xFF00); } } - local150 = arg0[arg1]; - local32 = arg1 + 1; - arg0[arg1] = local143 + ((local150 & 0xFF00FF) * local119 >> 8 & 0xFF00FF) + ((local150 & 0xFF00) * local119 >> 8 & 0xFF00); - @Pc(179) int local179 = arg0[local32]; - arg0[local32++] = local143 + ((local179 & 0xFF00FF) * local119 >> 8 & 0xFF00FF) + ((local179 & 0xFF00) * local119 >> 8 & 0xFF00); - @Pc(208) int local208 = arg0[local32]; - arg0[local32++] = local143 + ((local208 & 0xFF00FF) * local119 >> 8 & 0xFF00FF) + ((local208 & 0xFF00) * local119 >> 8 & 0xFF00); - @Pc(237) int local237 = arg0[local32]; - arg1 = local32 + 1; - arg0[local32] = local143 + ((local237 & 0xFF00FF) * local119 >> 8 & 0xFF00FF) + ((local237 & 0xFF00) * local119 >> 8 & 0xFF00); + + srcColor = pixels[offset]; + pixels[offset++] = sample + ((srcColor & 0xFF00FF) * alpha >> 8 & 0xFF00FF) + ((srcColor & 0xFF00) * alpha >> 8 & 0xFF00); + srcColor = pixels[offset]; + pixels[offset++] = sample + ((srcColor & 0xFF00FF) * alpha >> 8 & 0xFF00FF) + ((srcColor & 0xFF00) * alpha >> 8 & 0xFF00); + srcColor = pixels[offset]; + pixels[offset++] = sample + ((srcColor & 0xFF00FF) * alpha >> 8 & 0xFF00FF) + ((srcColor & 0xFF00) * alpha >> 8 & 0xFF00); + srcColor = pixels[offset]; + pixels[offset++] = sample + ((srcColor & 0xFF00FF) * alpha >> 8 & 0xFF00FF) + ((srcColor & 0xFF00) * alpha >> 8 & 0xFF00); } } } @OriginalMember(owner = "client!hf", name = "c", descriptor = "(II)V") - private static void method1924() { - @Pc(3) int local3 = 0; - for (@Pc(5) int local5 = 0; local5 < 512; local5++) { - @Pc(17) double local17 = (double) (local5 >> 3) / 64.0D + 0.0078125D; - @Pc(26) double local26 = (double) (local5 & 0x7) / 8.0D + 0.0625D; - for (@Pc(28) int local28 = 0; local28 < 128; local28++) { - @Pc(36) double local36 = (double) local28 / 128.0D; - @Pc(38) double local38 = local36; - @Pc(40) double local40 = local36; - @Pc(42) double local42 = local36; - if (local26 != 0.0D) { - @Pc(56) double local56; - if (local36 < 0.5D) { - local56 = local36 * (local26 + 1.0D); + private static void calculateBrightness() { + @Pc(3) int offset = 0; + + for (@Pc(5) int y = 0; y < 512; y++) { + @Pc(17) double hue = (double) (y >> 3) / 64.0D + 0.0078125D; + @Pc(26) double saturation = (double) (y & 0x7) / 8.0D + 0.0625D; + + for (@Pc(28) int x = 0; x < 128; x++) { + @Pc(36) double lightness = (double) x / 128.0D; + + @Pc(38) double r = lightness; + @Pc(40) double g = lightness; + @Pc(42) double b = lightness; + + if (saturation != 0.0D) { + @Pc(56) double q; + if (lightness < 0.5D) { + q = lightness * (saturation + 1.0D); } else { - local56 = local36 + local26 - local36 * local26; + q = lightness + saturation - lightness * saturation; } - @Pc(71) double local71 = local36 * 2.0D - local56; - @Pc(75) double local75 = local17 + 0.3333333333333333D; - if (local75 > 1.0D) { - local75--; + + @Pc(71) double p = lightness * 2.0D - q; + @Pc(75) double t = hue + 0.3333333333333333D; + if (t > 1.0D) { + t--; } - @Pc(89) double local89 = local17 - 0.3333333333333333D; - if (local89 < 0.0D) { - local89++; + + @Pc(89) double d11 = hue - 0.3333333333333333D; + if (d11 < 0.0D) { + d11++; } - if (local75 * 6.0D < 1.0D) { - local38 = local71 + (local56 - local71) * 6.0D * local75; - } else if (local75 * 2.0D < 1.0D) { - local38 = local56; - } else if (local75 * 3.0D < 2.0D) { - local38 = local71 + (local56 - local71) * (0.6666666666666666D - local75) * 6.0D; + + if (t * 6.0D < 1.0D) { + r = p + (q - p) * 6.0D * t; + } else if (t * 2.0D < 1.0D) { + r = q; + } else if (t * 3.0D < 2.0D) { + r = p + (q - p) * (0.6666666666666666D - t) * 6.0D; } else { - local38 = local71; + r = p; } - if (local17 * 6.0D < 1.0D) { - local40 = local71 + (local56 - local71) * 6.0D * local17; - } else if (local17 * 2.0D < 1.0D) { - local40 = local56; - } else if (local17 * 3.0D < 2.0D) { - local40 = local71 + (local56 - local71) * (0.6666666666666666D - local17) * 6.0D; + + if (hue * 6.0D < 1.0D) { + g = p + (q - p) * 6.0D * hue; + } else if (hue * 2.0D < 1.0D) { + g = q; + } else if (hue * 3.0D < 2.0D) { + g = p + (q - p) * (0.6666666666666666D - hue) * 6.0D; } else { - local40 = local71; + g = p; } - if (local89 * 6.0D < 1.0D) { - local42 = local71 + (local56 - local71) * 6.0D * local89; - } else if (local89 * 2.0D < 1.0D) { - local42 = local56; - } else if (local89 * 3.0D < 2.0D) { - local42 = local71 + (local56 - local71) * (0.6666666666666666D - local89) * 6.0D; + + if (d11 * 6.0D < 1.0D) { + b = p + (q - p) * 6.0D * d11; + } else if (d11 * 2.0D < 1.0D) { + b = q; + } else if (d11 * 3.0D < 2.0D) { + b = p + (q - p) * (0.6666666666666666D - d11) * 6.0D; } else { - local42 = local71; + b = p; } } - local38 = Math.pow(local38, (double) aFloat11); - local40 = Math.pow(local40, (double) aFloat11); - local42 = Math.pow(local42, (double) aFloat11); - @Pc(258) int local258 = (int) (local38 * 256.0D); - @Pc(263) int local263 = (int) (local40 * 256.0D); - @Pc(268) int local268 = (int) (local42 * 256.0D); - @Pc(278) int local278 = (local258 << 16) + (local263 << 8) + local268; - if (local278 == 0) { - local278 = 1; + + r = Math.pow(r, brightness); + g = Math.pow(g, brightness); + b = Math.pow(b, brightness); + + @Pc(258) int intR = (int) (r * 256.0D); + @Pc(263) int intG = (int) (g * 256.0D); + @Pc(268) int intB = (int) (b * 256.0D); + + @Pc(278) int rgb = (intR << 16) + (intG << 8) + intB; + if (rgb == 0) { + rgb = 1; } - anIntArray220[local3++] = local278; + palette[offset++] = rgb; } } } @OriginalMember(owner = "client!hf", name = "a", descriptor = "(IIII)V") - private static void method1925(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3) { - anInt2472 = arg2 - arg0; - anInt2470 = arg3 - arg1; - method1915(); - if (anIntArray221.length < anInt2470) { - anIntArray221 = new int[Static165.clp2(anInt2470)]; + private static void prepareOffsets(@OriginalArg(0) int left, @OriginalArg(1) int top, @OriginalArg(2) int right, @OriginalArg(3) int bottom) { + width = right - left; + height = bottom - top; + prepareOffsets(); + if (offsets.length < height) { + offsets = new int[Static165.clp2(height)]; } - @Pc(23) int local23 = arg1 * Static129.anInt3144 + arg0; - for (@Pc(25) int local25 = 0; local25 < anInt2470; local25++) { - anIntArray221[local25] = local23; - local23 += Static129.anInt3144; + @Pc(23) int x = top * Static129.width + left; + for (@Pc(25) int y = 0; y < height; y++) { + offsets[y] = x; + x += Static129.width; } } @OriginalMember(owner = "client!hf", name = "b", descriptor = "(F)V") - private static void method1926(@OriginalArg(0) float arg0) { - aFloat11 = arg0; - aFloat11 = (float) ((double) aFloat11 + Math.random() * 0.03D - 0.015D); + private static void randBrightness(@OriginalArg(0) float start) { + brightness = start; + brightness = (float) ((double) brightness + Math.random() * 0.03D - 0.015D); } @OriginalMember(owner = "client!hf", name = "d", descriptor = "()I") - public static int method1927() { - return anIntArray221[0] / Static129.anInt3144; + public static int getOffset() { + return offsets[0] / Static129.width; } @OriginalMember(owner = "client!hf", name = "a", descriptor = "(IIIIIIIII)V") - public static void method1928(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4, @OriginalArg(5) int arg5, @OriginalArg(6) int arg6, @OriginalArg(7) int arg7, @OriginalArg(8) int arg8) { - @Pc(3) int local3 = arg4 - arg3; - @Pc(7) int local7 = arg1 - arg0; - @Pc(11) int local11 = arg5 - arg3; - @Pc(15) int local15 = arg2 - arg0; - @Pc(19) int local19 = arg7 - arg6; - @Pc(23) int local23 = arg8 - arg6; - @Pc(36) int local36; - if (arg2 == arg1) { - local36 = 0; + public static void fillGouraudTriangle(@OriginalArg(0) int yA, @OriginalArg(1) int yB, @OriginalArg(2) int yC, @OriginalArg(3) int xA, @OriginalArg(4) int xB, @OriginalArg(5) int xC, @OriginalArg(6) int colorA, @OriginalArg(7) int colorB, @OriginalArg(8) int colorC) { + @Pc(3) int dxAB = xB - xA; + @Pc(7) int dyAB = yB - yA; + @Pc(11) int dxAC = xC - xA; + @Pc(15) int dyAC = yC - yA; + @Pc(19) int colorStepAB = colorB - colorA; + @Pc(23) int colorStepAC = colorC - colorA; + + @Pc(36) int xStepBC; + if (yC == yB) { + xStepBC = 0; } else { - local36 = (arg5 - arg4 << 16) / (arg2 - arg1); + xStepBC = (xC - xB << 16) / (yC - yB); } - @Pc(48) int local48; - if (arg1 == arg0) { - local48 = 0; + + @Pc(48) int xStepAB; + if (yB == yA) { + xStepAB = 0; } else { - local48 = (local3 << 16) / local7; + xStepAB = (dxAB << 16) / dyAB; } - @Pc(60) int local60; - if (arg2 == arg0) { - local60 = 0; + + @Pc(60) int xStepAC; + if (yC == yA) { + xStepAC = 0; } else { - local60 = (local11 << 16) / local15; + xStepAC = (dxAC << 16) / dyAC; } - @Pc(71) int local71 = local3 * local15 - local11 * local7; - if (local71 == 0) { + + @Pc(71) int length = dxAB * dyAC - dxAC * dyAB; + if (length == 0) { return; } - @Pc(86) int local86 = (local19 * local15 - local23 * local7 << 8) / local71; - @Pc(98) int local98 = (local23 * local3 - local19 * local11 << 8) / local71; - if (arg0 <= arg1 && arg0 <= arg2) { - if (arg0 < anInt2470) { - if (arg1 > anInt2470) { - arg1 = anInt2470; + + @Pc(86) int colorStepA = (colorStepAB * dyAC - colorStepAC * dyAB << 8) / length; + @Pc(98) int colorStepB = (colorStepAC * dxAB - colorStepAB * dxAC << 8) / length; + if (yA <= yB && yA <= yC) { + if (yA < height) { + if (yB > height) { + yB = height; } - if (arg2 > anInt2470) { - arg2 = anInt2470; + if (yC > height) { + yC = height; } - arg6 = (arg6 << 8) + local86 - local86 * arg3; - if (arg1 < arg2) { - arg5 = arg3 <<= 0x10; - if (arg0 < 0) { - arg5 -= local60 * arg0; - arg3 -= local48 * arg0; - arg6 -= local98 * arg0; - arg0 = 0; + + colorA = (colorA << 8) + colorStepA - colorStepA * xA; + if (yB < yC) { + xC = xA <<= 0x10; + if (yA < 0) { + xC -= xStepAC * yA; + xA -= xStepAB * yA; + colorA -= colorStepB * yA; + yA = 0; } - arg4 <<= 0x10; - if (arg1 < 0) { - arg4 -= local36 * arg1; - arg1 = 0; + + xB <<= 0x10; + if (yB < 0) { + xB -= xStepBC * yB; + yB = 0; } - if ((arg0 == arg1 || local60 >= local48) && (arg0 != arg1 || local60 <= local36)) { - arg2 -= arg1; - arg1 -= arg0; - arg0 = anIntArray221[arg0]; + + if ((yA == yB || xStepAC >= xStepAB) && (yA != yB || xStepAC <= xStepBC)) { + yC -= yB; + yB -= yA; + yA = offsets[yA]; while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { return; } - method1920(Static129.anIntArray297, arg0, arg4 >> 16, arg5 >> 16, arg6, local86); - arg5 += local60; - arg4 += local36; - arg6 += local98; - arg0 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yA, xB >> 16, xC >> 16, colorA, colorStepA); + xC += xStepAC; + xB += xStepBC; + colorA += colorStepB; + yA += Static129.width; } } - method1920(Static129.anIntArray297, arg0, arg3 >> 16, arg5 >> 16, arg6, local86); - arg5 += local60; - arg3 += local48; - arg6 += local98; - arg0 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yA, xA >> 16, xC >> 16, colorA, colorStepA); + xC += xStepAC; + xA += xStepAB; + colorA += colorStepB; + yA += Static129.width; } } else { - arg2 -= arg1; - arg1 -= arg0; - arg0 = anIntArray221[arg0]; + yC -= yB; + yB -= yA; + yA = offsets[yA]; while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { return; } - method1920(Static129.anIntArray297, arg0, arg5 >> 16, arg4 >> 16, arg6, local86); - arg5 += local60; - arg4 += local36; - arg6 += local98; - arg0 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yA, xC >> 16, xB >> 16, colorA, colorStepA); + xC += xStepAC; + xB += xStepBC; + colorA += colorStepB; + yA += Static129.width; } } - method1920(Static129.anIntArray297, arg0, arg5 >> 16, arg3 >> 16, arg6, local86); - arg5 += local60; - arg3 += local48; - arg6 += local98; - arg0 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yA, xC >> 16, xA >> 16, colorA, colorStepA); + xC += xStepAC; + xA += xStepAB; + colorA += colorStepB; + yA += Static129.width; } } } else { - arg4 = arg3 <<= 0x10; - if (arg0 < 0) { - arg4 -= local60 * arg0; - arg3 -= local48 * arg0; - arg6 -= local98 * arg0; - arg0 = 0; + xB = xA <<= 0x10; + if (yA < 0) { + xB -= xStepAC * yA; + xA -= xStepAB * yA; + colorA -= colorStepB * yA; + yA = 0; } - arg5 <<= 0x10; - if (arg2 < 0) { - arg5 -= local36 * arg2; - arg2 = 0; + + xC <<= 0x10; + if (yC < 0) { + xC -= xStepBC * yC; + yC = 0; } - if (arg0 != arg2 && local60 < local48 || arg0 == arg2 && local36 > local48) { - arg1 -= arg2; - arg2 -= arg0; - arg0 = anIntArray221[arg0]; + + if (yA != yC && xStepAC < xStepAB || yA == yC && xStepBC > xStepAB) { + yB -= yC; + yC -= yA; + yA = offsets[yA]; while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { return; } - method1920(Static129.anIntArray297, arg0, arg5 >> 16, arg3 >> 16, arg6, local86); - arg5 += local36; - arg3 += local48; - arg6 += local98; - arg0 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yA, xC >> 16, xA >> 16, colorA, colorStepA); + xC += xStepBC; + xA += xStepAB; + colorA += colorStepB; + yA += Static129.width; } } - method1920(Static129.anIntArray297, arg0, arg4 >> 16, arg3 >> 16, arg6, local86); - arg4 += local60; - arg3 += local48; - arg6 += local98; - arg0 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yA, xB >> 16, xA >> 16, colorA, colorStepA); + xB += xStepAC; + xA += xStepAB; + colorA += colorStepB; + yA += Static129.width; } } else { - arg1 -= arg2; - arg2 -= arg0; - arg0 = anIntArray221[arg0]; + yB -= yC; + yC -= yA; + yA = offsets[yA]; while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { return; } - method1920(Static129.anIntArray297, arg0, arg3 >> 16, arg5 >> 16, arg6, local86); - arg5 += local36; - arg3 += local48; - arg6 += local98; - arg0 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yA, xA >> 16, xC >> 16, colorA, colorStepA); + xC += xStepBC; + xA += xStepAB; + colorA += colorStepB; + yA += Static129.width; } } - method1920(Static129.anIntArray297, arg0, arg3 >> 16, arg4 >> 16, arg6, local86); - arg4 += local60; - arg3 += local48; - arg6 += local98; - arg0 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yA, xA >> 16, xB >> 16, colorA, colorStepA); + xB += xStepAC; + xA += xStepAB; + colorA += colorStepB; + yA += Static129.width; } } } } - } else if (arg1 <= arg2) { - if (arg1 < anInt2470) { - if (arg2 > anInt2470) { - arg2 = anInt2470; + } else if (yB <= yC) { + if (yB < height) { + if (yC > height) { + yC = height; } - if (arg0 > anInt2470) { - arg0 = anInt2470; + if (yA > height) { + yA = height; } - arg7 = (arg7 << 8) + local86 - local86 * arg4; - if (arg2 < arg0) { - arg3 = arg4 <<= 0x10; - if (arg1 < 0) { - arg3 -= local48 * arg1; - arg4 -= local36 * arg1; - arg7 -= local98 * arg1; - arg1 = 0; + + colorB = (colorB << 8) + colorStepA - colorStepA * xB; + if (yC < yA) { + xA = xB <<= 0x10; + if (yB < 0) { + xA -= xStepAB * yB; + xB -= xStepBC * yB; + colorB -= colorStepB * yB; + yB = 0; } - arg5 <<= 0x10; - if (arg2 < 0) { - arg5 -= local60 * arg2; - arg2 = 0; + xC <<= 0x10; + if (yC < 0) { + xC -= xStepAC * yC; + yC = 0; } - if ((arg1 == arg2 || local48 >= local36) && (arg1 != arg2 || local48 <= local60)) { - arg0 -= arg2; - arg2 -= arg1; - arg1 = anIntArray221[arg1]; + if ((yB == yC || xStepAB >= xStepBC) && (yB != yC || xStepAB <= xStepAC)) { + yA -= yC; + yC -= yB; + yB = offsets[yB]; while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { return; } - method1920(Static129.anIntArray297, arg1, arg5 >> 16, arg3 >> 16, arg7, local86); - arg3 += local48; - arg5 += local60; - arg7 += local98; - arg1 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yB, xC >> 16, xA >> 16, colorB, colorStepA); + xA += xStepAB; + xC += xStepAC; + colorB += colorStepB; + yB += Static129.width; } } - method1920(Static129.anIntArray297, arg1, arg4 >> 16, arg3 >> 16, arg7, local86); - arg3 += local48; - arg4 += local36; - arg7 += local98; - arg1 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yB, xB >> 16, xA >> 16, colorB, colorStepA); + xA += xStepAB; + xB += xStepBC; + colorB += colorStepB; + yB += Static129.width; } } else { - arg0 -= arg2; - arg2 -= arg1; - arg1 = anIntArray221[arg1]; + yA -= yC; + yC -= yB; + yB = offsets[yB]; while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { return; } - method1920(Static129.anIntArray297, arg1, arg3 >> 16, arg5 >> 16, arg7, local86); - arg3 += local48; - arg5 += local60; - arg7 += local98; - arg1 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yB, xA >> 16, xC >> 16, colorB, colorStepA); + xA += xStepAB; + xC += xStepAC; + colorB += colorStepB; + yB += Static129.width; } } - method1920(Static129.anIntArray297, arg1, arg3 >> 16, arg4 >> 16, arg7, local86); - arg3 += local48; - arg4 += local36; - arg7 += local98; - arg1 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yB, xA >> 16, xB >> 16, colorB, colorStepA); + xA += xStepAB; + xB += xStepBC; + colorB += colorStepB; + yB += Static129.width; } } } else { - arg5 = arg4 <<= 0x10; - if (arg1 < 0) { - arg5 -= local48 * arg1; - arg4 -= local36 * arg1; - arg7 -= local98 * arg1; - arg1 = 0; + xC = xB <<= 0x10; + if (yB < 0) { + xC -= xStepAB * yB; + xB -= xStepBC * yB; + colorB -= colorStepB * yB; + yB = 0; } - arg3 <<= 0x10; - if (arg0 < 0) { - arg3 -= local60 * arg0; - arg0 = 0; + + xA <<= 0x10; + if (yA < 0) { + xA -= xStepAC * yA; + yA = 0; } - if (local48 < local36) { - arg2 -= arg0; - arg0 -= arg1; - arg1 = anIntArray221[arg1]; + + if (xStepAB < xStepBC) { + yC -= yA; + yA -= yB; + yB = offsets[yB]; while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { return; } - method1920(Static129.anIntArray297, arg1, arg3 >> 16, arg4 >> 16, arg7, local86); - arg3 += local60; - arg4 += local36; - arg7 += local98; - arg1 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yB, xA >> 16, xB >> 16, colorB, colorStepA); + xA += xStepAC; + xB += xStepBC; + colorB += colorStepB; + yB += Static129.width; } } - method1920(Static129.anIntArray297, arg1, arg5 >> 16, arg4 >> 16, arg7, local86); - arg5 += local48; - arg4 += local36; - arg7 += local98; - arg1 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yB, xC >> 16, xB >> 16, colorB, colorStepA); + xC += xStepAB; + xB += xStepBC; + colorB += colorStepB; + yB += Static129.width; } } else { - arg2 -= arg0; - arg0 -= arg1; - arg1 = anIntArray221[arg1]; + yC -= yA; + yA -= yB; + yB = offsets[yB]; while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { while (true) { - arg2--; - if (arg2 < 0) { + yC--; + if (yC < 0) { return; } - method1920(Static129.anIntArray297, arg1, arg4 >> 16, arg3 >> 16, arg7, local86); - arg3 += local60; - arg4 += local36; - arg7 += local98; - arg1 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yB, xB >> 16, xA >> 16, colorB, colorStepA); + xA += xStepAC; + xB += xStepBC; + colorB += colorStepB; + yB += Static129.width; } } - method1920(Static129.anIntArray297, arg1, arg4 >> 16, arg5 >> 16, arg7, local86); - arg5 += local48; - arg4 += local36; - arg7 += local98; - arg1 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yB, xB >> 16, xC >> 16, colorB, colorStepA); + xC += xStepAB; + xB += xStepBC; + colorB += colorStepB; + yB += Static129.width; } } } } - } else if (arg2 < anInt2470) { - if (arg0 > anInt2470) { - arg0 = anInt2470; + } else if (yC < height) { + if (yA > height) { + yA = height; } - if (arg1 > anInt2470) { - arg1 = anInt2470; + if (yB > height) { + yB = height; } - arg8 = (arg8 << 8) + local86 - local86 * arg5; - if (arg0 < arg1) { - arg4 = arg5 <<= 0x10; - if (arg2 < 0) { - arg4 -= local36 * arg2; - arg5 -= local60 * arg2; - arg8 -= local98 * arg2; - arg2 = 0; + + colorC = (colorC << 8) + colorStepA - colorStepA * xC; + if (yA < yB) { + xB = xC <<= 0x10; + if (yC < 0) { + xB -= xStepBC * yC; + xC -= xStepAC * yC; + colorC -= colorStepB * yC; + yC = 0; } - arg3 <<= 0x10; - if (arg0 < 0) { - arg3 -= local48 * arg0; - arg0 = 0; + + xA <<= 0x10; + if (yA < 0) { + xA -= xStepAB * yA; + yA = 0; } - if (local36 < local60) { - arg1 -= arg0; - arg0 -= arg2; - arg2 = anIntArray221[arg2]; + + if (xStepBC < xStepAC) { + yB -= yA; + yA -= yC; + yC = offsets[yC]; while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { return; } - method1920(Static129.anIntArray297, arg2, arg4 >> 16, arg3 >> 16, arg8, local86); - arg4 += local36; - arg3 += local48; - arg8 += local98; - arg2 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yC, xB >> 16, xA >> 16, colorC, colorStepA); + xB += xStepBC; + xA += xStepAB; + colorC += colorStepB; + yC += Static129.width; } } - method1920(Static129.anIntArray297, arg2, arg4 >> 16, arg5 >> 16, arg8, local86); - arg4 += local36; - arg5 += local60; - arg8 += local98; - arg2 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yC, xB >> 16, xC >> 16, colorC, colorStepA); + xB += xStepBC; + xC += xStepAC; + colorC += colorStepB; + yC += Static129.width; } } else { - arg1 -= arg0; - arg0 -= arg2; - arg2 = anIntArray221[arg2]; + yB -= yA; + yA -= yC; + yC = offsets[yC]; while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { return; } - method1920(Static129.anIntArray297, arg2, arg3 >> 16, arg4 >> 16, arg8, local86); - arg4 += local36; - arg3 += local48; - arg8 += local98; - arg2 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yC, xA >> 16, xB >> 16, colorC, colorStepA); + xB += xStepBC; + xA += xStepAB; + colorC += colorStepB; + yC += Static129.width; } } - method1920(Static129.anIntArray297, arg2, arg5 >> 16, arg4 >> 16, arg8, local86); - arg4 += local36; - arg5 += local60; - arg8 += local98; - arg2 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yC, xC >> 16, xB >> 16, colorC, colorStepA); + xB += xStepBC; + xC += xStepAC; + colorC += colorStepB; + yC += Static129.width; } } } else { - arg3 = arg5 <<= 0x10; - if (arg2 < 0) { - arg3 -= local36 * arg2; - arg5 -= local60 * arg2; - arg8 -= local98 * arg2; - arg2 = 0; + xA = xC <<= 0x10; + if (yC < 0) { + xA -= xStepBC * yC; + xC -= xStepAC * yC; + colorC -= colorStepB * yC; + yC = 0; } - arg4 <<= 0x10; - if (arg1 < 0) { - arg4 -= local48 * arg1; - arg1 = 0; + + xB <<= 0x10; + if (yB < 0) { + xB -= xStepAB * yB; + yB = 0; } - if (local36 < local60) { - arg0 -= arg1; - arg1 -= arg2; - arg2 = anIntArray221[arg2]; + + if (xStepBC < xStepAC) { + yA -= yB; + yB -= yC; + yC = offsets[yC]; while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { return; } - method1920(Static129.anIntArray297, arg2, arg4 >> 16, arg5 >> 16, arg8, local86); - arg4 += local48; - arg5 += local60; - arg8 += local98; - arg2 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yC, xB >> 16, xC >> 16, colorC, colorStepA); + xB += xStepAB; + xC += xStepAC; + colorC += colorStepB; + yC += Static129.width; } } - method1920(Static129.anIntArray297, arg2, arg3 >> 16, arg5 >> 16, arg8, local86); - arg3 += local36; - arg5 += local60; - arg8 += local98; - arg2 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yC, xA >> 16, xC >> 16, colorC, colorStepA); + xA += xStepBC; + xC += xStepAC; + colorC += colorStepB; + yC += Static129.width; } } else { - arg0 -= arg1; - arg1 -= arg2; - arg2 = anIntArray221[arg2]; + yA -= yB; + yB -= yC; + yC = offsets[yC]; while (true) { - arg1--; - if (arg1 < 0) { + yB--; + if (yB < 0) { while (true) { - arg0--; - if (arg0 < 0) { + yA--; + if (yA < 0) { return; } - method1920(Static129.anIntArray297, arg2, arg5 >> 16, arg4 >> 16, arg8, local86); - arg4 += local48; - arg5 += local60; - arg8 += local98; - arg2 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yC, xC >> 16, xB >> 16, colorC, colorStepA); + xB += xStepAB; + xC += xStepAC; + colorC += colorStepB; + yC += Static129.width; } } - method1920(Static129.anIntArray297, arg2, arg5 >> 16, arg3 >> 16, arg8, local86); - arg3 += local36; - arg5 += local60; - arg8 += local98; - arg2 += Static129.anInt3144; + + drawGouraudScanline(Static129.pixels, yC, xC >> 16, xA >> 16, colorC, colorStepA); + xA += xStepBC; + xC += xStepAC; + colorC += colorStepB; + yC += Static129.width; } } } @@ -3454,11 +3739,12 @@ public final class Rasteriser { } @OriginalMember(owner = "client!hf", name = "a", descriptor = "([BIIII)V") - private static void method1930(@OriginalArg(0) byte[] arg0, @OriginalArg(1) int arg1, @OriginalArg(3) int arg2, @OriginalArg(4) int arg3) { + private static void drawSpriteScanline(@OriginalArg(0) byte[] dst, @OriginalArg(1) int off, @OriginalArg(3) int arg2, @OriginalArg(4) int arg3) { if (arg2 >= arg3) { return; } - arg1 += arg2; + + off += arg2; @Pc(13) int local13 = arg3 - arg2 >> 2; while (true) { local13--; @@ -3469,17 +3755,14 @@ public final class Rasteriser { if (local13 < 0) { return; } - arg0[arg1++] = 1; + dst[off++] = 1; } } - @Pc(19) int local19 = arg1 + 1; - arg0[arg1] = 1; - @Pc(24) int local24 = local19 + 1; - arg0[local19] = 1; - @Pc(29) int local29 = local24 + 1; - arg0[local24] = 1; - arg1 = local29 + 1; - arg0[local29] = 1; + + dst[off++] = 1; + dst[off++] = 1; + dst[off++] = 1; + dst[off++] = 1; } } } diff --git a/client/src/main/java/SoftwareAlphaSprite.java b/client/src/main/java/SoftwareAlphaSprite.java index a53d498..336f3e8 100644 --- a/client/src/main/java/SoftwareAlphaSprite.java +++ b/client/src/main/java/SoftwareAlphaSprite.java @@ -21,23 +21,23 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { @Pc(33) int local33 = local21 * 256 >> 8; @Pc(45) int local45 = local27 * -10 + local33 * -10 + 983040; @Pc(57) int local57 = local33 * -10 + 983040 - local27 * -10; - @Pc(63) int local63 = arg0 + arg1 * Static129.anInt3144; + @Pc(63) int local63 = arg0 + arg1 * Static129.width; for (@Pc(65) int local65 = 0; local65 < 20; local65++) { @Pc(70) int local70 = local63; @Pc(72) int local72 = local45; @Pc(74) int local74 = local57; for (@Pc(77) int local77 = -20; local77 < 0; local77++) { @Pc(93) int local93 = this.anIntArray20[(local72 >> 16) + (local74 >> 16) * this.anInt1867]; - @Pc(97) int local97 = Static129.anIntArray297[local70]; + @Pc(97) int local97 = Static129.pixels[local70]; @Pc(101) int local101 = local93 >>> 24; @Pc(105) int local105 = 256 - local101; - Static129.anIntArray297[local70++] = ((local93 & 0xFF00FF) * local101 + (local97 & 0xFF00FF) * local105 & 0xFF00FF00) + ((local93 & 0xFF00) * local101 + (local97 & 0xFF00) * local105 & 0xFF0000) >>> 8; + Static129.pixels[local70++] = ((local93 & 0xFF00FF) * local101 + (local97 & 0xFF00FF) * local105 & 0xFF00FF00) + ((local93 & 0xFF00) * local101 + (local97 & 0xFF00) * local105 & 0xFF0000) >>> 8; local72 += local33; local74 -= local27; } local45 += local27; local57 += local33; - local63 += Static129.anInt3144; + local63 += Static129.width; } } catch (@Pc(164) Exception local164) { } @@ -48,40 +48,40 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { public final void method1423(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) { arg0 += this.anInt1863; arg1 += this.anInt1861; - @Pc(15) int local15 = arg0 + arg1 * Static129.anInt3144; + @Pc(15) int local15 = arg0 + arg1 * Static129.width; @Pc(17) int local17 = 0; @Pc(20) int local20 = this.anInt1859; @Pc(23) int local23 = this.anInt1867; - @Pc(27) int local27 = Static129.anInt3144 - local23; + @Pc(27) int local27 = Static129.width - local23; @Pc(29) int local29 = 0; @Pc(36) int local36; - if (arg1 < Static129.anInt3147) { - local36 = Static129.anInt3147 - arg1; + if (arg1 < Static129.clipTop) { + local36 = Static129.clipTop - arg1; local20 -= local36; - arg1 = Static129.anInt3147; + arg1 = Static129.clipTop; local17 = local36 * local23; - local15 += local36 * Static129.anInt3144; + local15 += local36 * Static129.width; } - if (arg1 + local20 > Static129.anInt3149) { - local20 -= arg1 + local20 - Static129.anInt3149; + if (arg1 + local20 > Static129.clipBottom) { + local20 -= arg1 + local20 - Static129.clipBottom; } - if (arg0 < Static129.anInt3145) { - local36 = Static129.anInt3145 - arg0; + if (arg0 < Static129.clipLeft) { + local36 = Static129.clipLeft - arg0; local23 -= local36; - arg0 = Static129.anInt3145; + arg0 = Static129.clipLeft; local17 += local36; local15 += local36; local29 = local36; local27 += local36; } - if (arg0 + local23 > Static129.anInt3148) { - local36 = arg0 + local23 - Static129.anInt3148; + if (arg0 + local23 > Static129.clipRight) { + local36 = arg0 + local23 - Static129.clipRight; local23 -= local36; local29 += local36; local27 += local36; } if (local23 > 0 && local20 > 0) { - Static283.method319(Static129.anIntArray297, this.anIntArray20, local17, local15, local23, local20, local27, local29); + Static283.method319(Static129.pixels, this.anIntArray20, local17, local15, local23, local20, local27, local29); } } @@ -90,40 +90,40 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { public final void method1415(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) { arg0 += this.anInt1863; arg1 += this.anInt1861; - @Pc(15) int local15 = arg0 + arg1 * Static129.anInt3144; + @Pc(15) int local15 = arg0 + arg1 * Static129.width; @Pc(17) int local17 = 0; @Pc(20) int local20 = this.anInt1859; @Pc(23) int local23 = this.anInt1867; - @Pc(27) int local27 = Static129.anInt3144 - local23; + @Pc(27) int local27 = Static129.width - local23; @Pc(29) int local29 = 0; @Pc(36) int local36; - if (arg1 < Static129.anInt3147) { - local36 = Static129.anInt3147 - arg1; + if (arg1 < Static129.clipTop) { + local36 = Static129.clipTop - arg1; local20 -= local36; - arg1 = Static129.anInt3147; + arg1 = Static129.clipTop; local17 = local36 * local23; - local15 += local36 * Static129.anInt3144; + local15 += local36 * Static129.width; } - if (arg1 + local20 > Static129.anInt3149) { - local20 -= arg1 + local20 - Static129.anInt3149; + if (arg1 + local20 > Static129.clipBottom) { + local20 -= arg1 + local20 - Static129.clipBottom; } - if (arg0 < Static129.anInt3145) { - local36 = Static129.anInt3145 - arg0; + if (arg0 < Static129.clipLeft) { + local36 = Static129.clipLeft - arg0; local23 -= local36; - arg0 = Static129.anInt3145; + arg0 = Static129.clipLeft; local17 += local36; local15 += local36; local29 = local36; local27 += local36; } - if (arg0 + local23 > Static129.anInt3148) { - local36 = arg0 + local23 - Static129.anInt3148; + if (arg0 + local23 > Static129.clipRight) { + local36 = arg0 + local23 - Static129.clipRight; local23 -= local36; local29 += local36; local27 += local36; } if (local23 > 0 && local20 > 0) { - Static283.method319(Static129.anIntArray297, this.anIntArray20, local17, local15, local23, local20, local27, local29); + Static283.method319(Static129.pixels, this.anIntArray20, local17, local15, local23, local20, local27, local29); } } @@ -200,17 +200,17 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { local166 = local166 + 15 >> 4; local196 >>= 0x4; local198 = local198 + 15 >> 4; - if (local164 < Static129.anInt3145) { - local164 = Static129.anInt3145; + if (local164 < Static129.clipLeft) { + local164 = Static129.clipLeft; } - if (local166 > Static129.anInt3148) { - local166 = Static129.anInt3148; + if (local166 > Static129.clipRight) { + local166 = Static129.clipRight; } - if (local196 < Static129.anInt3147) { - local196 = Static129.anInt3147; + if (local196 < Static129.clipTop) { + local196 = Static129.clipTop; } - if (local198 > Static129.anInt3149) { - local198 = Static129.anInt3149; + if (local198 > Static129.clipBottom) { + local198 = Static129.clipBottom; } local166 = local164 - local166; if (local166 >= 0) { @@ -220,7 +220,7 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { if (local198 >= 0) { return; } - @Pc(319) int local319 = local196 * Static129.anInt3144 + local164; + @Pc(319) int local319 = local196 * Static129.width + local164; @Pc(324) double local324 = 1.6777216E7D / (double) arg5; @Pc(333) int local333 = (int) Math.floor(Math.sin(local23) * local324 + 0.5D); @Pc(342) int local342 = (int) Math.floor(Math.cos(local23) * local324 + 0.5D); @@ -260,17 +260,17 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { } while (local394 < 0) { local432 = this.anIntArray20[(local378 >> 12) * this.anInt1867 + (local802 >> 12)]; - local436 = Static129.anIntArray297[local388]; + local436 = Static129.pixels[local388]; local440 = local432 >>> 24; local444 = 256 - local440; - Static129.anIntArray297[local388++] = ((local432 & 0xFF00FF) * local440 + (local436 & 0xFF00FF) * local444 & 0xFF00FF00) + ((local432 & 0xFF00) * local440 + (local436 & 0xFF00) * local444 & 0xFF0000) >>> 8; + Static129.pixels[local388++] = ((local432 & 0xFF00FF) * local440 + (local436 & 0xFF00FF) * local444 & 0xFF00FF00) + ((local432 & 0xFF00) * local440 + (local436 & 0xFF00) * local444 & 0xFF0000) >>> 8; local802 += local342; local394++; } } local384++; local378 += local342; - local319 += Static129.anInt3144; + local319 += Static129.width; } } else if (local333 < 0) { local384 = local198; @@ -305,10 +305,10 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { } while (local394 < 0) { local432 = this.anIntArray20[(local504 >> 12) * this.anInt1867 + (local802 >> 12)]; - local436 = Static129.anIntArray297[local388]; + local436 = Static129.pixels[local388]; local440 = local432 >>> 24; local444 = 256 - local440; - Static129.anIntArray297[local388++] = ((local432 & 0xFF00FF) * local440 + (local436 & 0xFF00FF) * local444 & 0xFF00FF00) + ((local432 & 0xFF00) * local440 + (local436 & 0xFF00) * local444 & 0xFF0000) >>> 8; + Static129.pixels[local388++] = ((local432 & 0xFF00FF) * local440 + (local436 & 0xFF00FF) * local444 & 0xFF00FF00) + ((local432 & 0xFF00) * local440 + (local436 & 0xFF00) * local444 & 0xFF0000) >>> 8; local802 += local342; local504 += local333; local394++; @@ -316,7 +316,7 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { local384++; local368 -= local333; local378 += local342; - local319 += Static129.anInt3144; + local319 += Static129.width; } } else { local384 = local198; @@ -350,10 +350,10 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { } while (local394 < 0) { local432 = this.anIntArray20[(local504 >> 12) * this.anInt1867 + (local802 >> 12)]; - local436 = Static129.anIntArray297[local388]; + local436 = Static129.pixels[local388]; local440 = local432 >>> 24; local444 = 256 - local440; - Static129.anIntArray297[local388++] = ((local432 & 0xFF00FF) * local440 + (local436 & 0xFF00FF) * local444 & 0xFF00FF00) + ((local432 & 0xFF00) * local440 + (local436 & 0xFF00) * local444 & 0xFF0000) >>> 8; + Static129.pixels[local388++] = ((local432 & 0xFF00FF) * local440 + (local436 & 0xFF00FF) * local444 & 0xFF00FF00) + ((local432 & 0xFF00) * local440 + (local436 & 0xFF00) * local444 & 0xFF0000) >>> 8; local802 += local342; local504 += local333; local394++; @@ -361,7 +361,7 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { local384++; local368 -= local333; local378 += local342; - local319 += Static129.anInt3144; + local319 += Static129.width; } } } else if (local333 == 0) { @@ -383,17 +383,17 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { } while (local394 < 0) { local432 = this.anIntArray20[(local378 >> 12) * this.anInt1867 + (local802 >> 12)]; - local436 = Static129.anIntArray297[local388]; + local436 = Static129.pixels[local388]; local440 = local432 >>> 24; local444 = 256 - local440; - Static129.anIntArray297[local388++] = ((local432 & 0xFF00FF) * local440 + (local436 & 0xFF00FF) * local444 & 0xFF00FF00) + ((local432 & 0xFF00) * local440 + (local436 & 0xFF00) * local444 & 0xFF0000) >>> 8; + Static129.pixels[local388++] = ((local432 & 0xFF00FF) * local440 + (local436 & 0xFF00FF) * local444 & 0xFF00FF00) + ((local432 & 0xFF00) * local440 + (local436 & 0xFF00) * local444 & 0xFF0000) >>> 8; local802 += local342; local394++; } } local384++; local378 += local342; - local319 += Static129.anInt3144; + local319 += Static129.width; } } else if (local333 < 0) { local384 = local198; @@ -427,10 +427,10 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { } while (local394 < 0) { local432 = this.anIntArray20[(local504 >> 12) * this.anInt1867 + (local802 >> 12)]; - local436 = Static129.anIntArray297[local388]; + local436 = Static129.pixels[local388]; local440 = local432 >>> 24; local444 = 256 - local440; - Static129.anIntArray297[local388++] = ((local432 & 0xFF00FF) * local440 + (local436 & 0xFF00FF) * local444 & 0xFF00FF00) + ((local432 & 0xFF00) * local440 + (local436 & 0xFF00) * local444 & 0xFF0000) >>> 8; + Static129.pixels[local388++] = ((local432 & 0xFF00FF) * local440 + (local436 & 0xFF00FF) * local444 & 0xFF00FF00) + ((local432 & 0xFF00) * local440 + (local436 & 0xFF00) * local444 & 0xFF0000) >>> 8; local802 += local342; local504 += local333; local394++; @@ -438,7 +438,7 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { local384++; local368 -= local333; local378 += local342; - local319 += Static129.anInt3144; + local319 += Static129.width; } } else { local384 = local198; @@ -471,10 +471,10 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { } while (local394 < 0) { local432 = this.anIntArray20[(local504 >> 12) * this.anInt1867 + (local802 >> 12)]; - local436 = Static129.anIntArray297[local388]; + local436 = Static129.pixels[local388]; local440 = local432 >>> 24; local444 = 256 - local440; - Static129.anIntArray297[local388++] = ((local432 & 0xFF00FF) * local440 + (local436 & 0xFF00FF) * local444 & 0xFF00FF00) + ((local432 & 0xFF00) * local440 + (local436 & 0xFF00) * local444 & 0xFF0000) >>> 8; + Static129.pixels[local388++] = ((local432 & 0xFF00FF) * local440 + (local436 & 0xFF00FF) * local444 & 0xFF00FF00) + ((local432 & 0xFF00) * local440 + (local436 & 0xFF00) * local444 & 0xFF0000) >>> 8; local802 += local342; local504 += local333; local394++; @@ -482,7 +482,7 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { local384++; local368 -= local333; local378 += local342; - local319 += Static129.anInt3144; + local319 += Static129.width; } } } else if (local333 == 0) { @@ -493,15 +493,15 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { if (local368 >= 0 && local378 >= 0 && local368 - (this.anInt1867 << 12) < 0 && local378 - (this.anInt1859 << 12) < 0) { while (local394 < 0) { local432 = this.anIntArray20[(local378 >> 12) * this.anInt1867 + (local368 >> 12)]; - local436 = Static129.anIntArray297[local388]; + local436 = Static129.pixels[local388]; local440 = local432 >>> 24; local444 = 256 - local440; - Static129.anIntArray297[local388++] = ((local432 & 0xFF00FF) * local440 + (local436 & 0xFF00FF) * local444 & 0xFF00FF00) + ((local432 & 0xFF00) * local440 + (local436 & 0xFF00) * local444 & 0xFF0000) >>> 8; + Static129.pixels[local388++] = ((local432 & 0xFF00FF) * local440 + (local436 & 0xFF00FF) * local444 & 0xFF00FF00) + ((local432 & 0xFF00) * local440 + (local436 & 0xFF00) * local444 & 0xFF0000) >>> 8; local394++; } } local384++; - local319 += Static129.anInt3144; + local319 += Static129.width; } } else if (local333 < 0) { local384 = local198; @@ -523,17 +523,17 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { } while (local394 < 0) { local432 = this.anIntArray20[(local504 >> 12) * this.anInt1867 + (local368 >> 12)]; - local436 = Static129.anIntArray297[local388]; + local436 = Static129.pixels[local388]; local440 = local432 >>> 24; local444 = 256 - local440; - Static129.anIntArray297[local388++] = ((local432 & 0xFF00FF) * local440 + (local436 & 0xFF00FF) * local444 & 0xFF00FF00) + ((local432 & 0xFF00) * local440 + (local436 & 0xFF00) * local444 & 0xFF0000) >>> 8; + Static129.pixels[local388++] = ((local432 & 0xFF00FF) * local440 + (local436 & 0xFF00FF) * local444 & 0xFF00FF00) + ((local432 & 0xFF00) * local440 + (local436 & 0xFF00) * local444 & 0xFF0000) >>> 8; local504 += local333; local394++; } } local384++; local368 -= local333; - local319 += Static129.anInt3144; + local319 += Static129.width; } } else { local384 = local198; @@ -554,17 +554,17 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { } while (local394 < 0) { local432 = this.anIntArray20[(local504 >> 12) * this.anInt1867 + (local368 >> 12)]; - local436 = Static129.anIntArray297[local388]; + local436 = Static129.pixels[local388]; local440 = local432 >>> 24; local444 = 256 - local440; - Static129.anIntArray297[local388++] = ((local432 & 0xFF00FF) * local440 + (local436 & 0xFF00FF) * local444 & 0xFF00FF00) + ((local432 & 0xFF00) * local440 + (local436 & 0xFF00) * local444 & 0xFF0000) >>> 8; + Static129.pixels[local388++] = ((local432 & 0xFF00FF) * local440 + (local436 & 0xFF00FF) * local444 & 0xFF00FF00) + ((local432 & 0xFF00) * local440 + (local436 & 0xFF00) * local444 & 0xFF0000) >>> 8; local504 += local333; local394++; } } local384++; local368 -= local333; - local319 += Static129.anInt3144; + local319 += Static129.width; } } } @@ -581,7 +581,7 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { @Pc(39) int local39 = local27 * arg7 >> 8; @Pc(51) int local51 = (arg4 << 16) + local9 * local33 + local4 * local39; @Pc(63) int local63 = (arg5 << 16) + (local9 * local39 - local4 * local33); - @Pc(69) int local69 = arg0 + arg1 * Static129.anInt3144; + @Pc(69) int local69 = arg0 + arg1 * Static129.width; for (@Pc(71) int local71 = 0; local71 < arg3; local71++) { @Pc(78) int local78 = arg8[local71]; @Pc(82) int local82 = local69 + local78; @@ -589,16 +589,16 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { @Pc(94) int local94 = local63 - local33 * local78; for (@Pc(99) int local99 = -arg9[local71]; local99 < 0; local99++) { @Pc(115) int local115 = this.anIntArray20[(local88 >> 16) + (local94 >> 16) * this.anInt1867]; - @Pc(119) int local119 = Static129.anIntArray297[local82]; + @Pc(119) int local119 = Static129.pixels[local82]; @Pc(123) int local123 = local115 >>> 24; @Pc(127) int local127 = 256 - local123; - Static129.anIntArray297[local82++] = ((local115 & 0xFF00FF) * local123 + (local119 & 0xFF00FF) * local127 & 0xFF00FF00) + ((local115 & 0xFF00) * local123 + (local119 & 0xFF00) * local127 & 0xFF0000) >>> 8; + Static129.pixels[local82++] = ((local115 & 0xFF00FF) * local123 + (local119 & 0xFF00FF) * local127 & 0xFF00FF00) + ((local115 & 0xFF00) * local123 + (local119 & 0xFF00) * local127 & 0xFF0000) >>> 8; local88 += local39; local94 -= local33; } local51 += local33; local63 += local39; - local69 += Static129.anInt3144; + local69 += Static129.width; } } catch (@Pc(186) Exception local186) { } @@ -616,7 +616,7 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { @Pc(39) int local39 = local27 * 256 >> 8; @Pc(51) int local51 = (arg4 << 16) + local9 * local33 + local4 * local39; @Pc(63) int local63 = (arg5 << 16) + (local9 * local39 - local4 * local33); - @Pc(69) int local69 = arg0 + arg1 * Static129.anInt3144; + @Pc(69) int local69 = arg0 + arg1 * Static129.width; for (@Pc(71) int local71 = 0; local71 < arg3; local71++) { @Pc(78) int local78 = arg7[local71]; @Pc(82) int local82 = local69 + local78; @@ -624,16 +624,16 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { @Pc(94) int local94 = local63 - local33 * local78; for (@Pc(99) int local99 = -arg8[local71]; local99 < 0; local99++) { @Pc(115) int local115 = this.anIntArray20[(local88 >> 16) + (local94 >> 16) * this.anInt1867]; - @Pc(119) int local119 = Static129.anIntArray297[local82]; + @Pc(119) int local119 = Static129.pixels[local82]; @Pc(123) int local123 = local115 >>> 24; @Pc(127) int local127 = 256 - local123; - Static129.anIntArray297[local82++] = ((local115 & 0xFF00FF) * local123 + (local119 & 0xFF00FF) * local127 & 0xFF00FF00) + ((local115 & 0xFF00) * local123 + (local119 & 0xFF00) * local127 & 0xFF0000) >>> 8; + Static129.pixels[local82++] = ((local115 & 0xFF00FF) * local123 + (local119 & 0xFF00FF) * local127 & 0xFF00FF00) + ((local115 & 0xFF00) * local123 + (local119 & 0xFF00) * local127 & 0xFF0000) >>> 8; local88 += local39; local94 -= local33; } local51 += local33; local63 += local39; - local69 += Static129.anInt3144; + local69 += Static129.width; } } catch (@Pc(186) Exception local186) { } @@ -670,31 +670,31 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { if (local10 < local20) { arg3 = ((local10 << 16) + local32 - local14 - 1) / local32; } - local46 = arg0 + arg1 * Static129.anInt3144; - @Pc(130) int local130 = Static129.anInt3144 - arg2; - if (arg1 + arg3 > Static129.anInt3149) { - arg3 -= arg1 + arg3 - Static129.anInt3149; + local46 = arg0 + arg1 * Static129.width; + @Pc(130) int local130 = Static129.width - arg2; + if (arg1 + arg3 > Static129.clipBottom) { + arg3 -= arg1 + arg3 - Static129.clipBottom; } @Pc(150) int local150; - if (arg1 < Static129.anInt3147) { - local150 = Static129.anInt3147 - arg1; + if (arg1 < Static129.clipTop) { + local150 = Static129.clipTop - arg1; arg3 -= local150; - local46 += local150 * Static129.anInt3144; + local46 += local150 * Static129.width; local14 += local32 * local150; } - if (arg0 + arg2 > Static129.anInt3148) { - local150 = arg0 + arg2 - Static129.anInt3148; + if (arg0 + arg2 > Static129.clipRight) { + local150 = arg0 + arg2 - Static129.clipRight; arg2 -= local150; local130 += local150; } - if (arg0 < Static129.anInt3145) { - local150 = Static129.anInt3145 - arg0; + if (arg0 < Static129.clipLeft) { + local150 = Static129.clipLeft - arg0; arg2 -= local150; local46 += local150; local12 += local26 * local150; local130 += local150; } - Static283.method317(Static129.anIntArray297, this.anIntArray20, local12, local14, local46, local130, arg2, arg3, local26, local32, local7, arg4); + Static283.method317(Static129.pixels, this.anIntArray20, local12, local14, local46, local130, arg2, arg3, local26, local32, local7, arg4); } @OriginalMember(owner = "client!am", name = "a", descriptor = "(IIII)V") @@ -728,31 +728,31 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { if (local10 < local20) { arg3 = ((local10 << 16) + local32 - local14 - 1) / local32; } - local46 = arg0 + arg1 * Static129.anInt3144; - @Pc(130) int local130 = Static129.anInt3144 - arg2; - if (arg1 + arg3 > Static129.anInt3149) { - arg3 -= arg1 + arg3 - Static129.anInt3149; + local46 = arg0 + arg1 * Static129.width; + @Pc(130) int local130 = Static129.width - arg2; + if (arg1 + arg3 > Static129.clipBottom) { + arg3 -= arg1 + arg3 - Static129.clipBottom; } @Pc(150) int local150; - if (arg1 < Static129.anInt3147) { - local150 = Static129.anInt3147 - arg1; + if (arg1 < Static129.clipTop) { + local150 = Static129.clipTop - arg1; arg3 -= local150; - local46 += local150 * Static129.anInt3144; + local46 += local150 * Static129.width; local14 += local32 * local150; } - if (arg0 + arg2 > Static129.anInt3148) { - local150 = arg0 + arg2 - Static129.anInt3148; + if (arg0 + arg2 > Static129.clipRight) { + local150 = arg0 + arg2 - Static129.clipRight; arg2 -= local150; local130 += local150; } - if (arg0 < Static129.anInt3145) { - local150 = Static129.anInt3145 - arg0; + if (arg0 < Static129.clipLeft) { + local150 = Static129.clipLeft - arg0; arg2 -= local150; local46 += local150; local12 += local26 * local150; local130 += local150; } - Static283.method321(Static129.anIntArray297, this.anIntArray20, local12, local14, local46, local130, arg2, arg3, local26, local32, local7); + Static283.method321(Static129.pixels, this.anIntArray20, local12, local14, local46, local130, arg2, arg3, local26, local32, local7); } @OriginalMember(owner = "client!am", name = "d", descriptor = "(II)V") @@ -760,40 +760,40 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { public final void method1421(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) { arg0 += this.anInt1860 - this.anInt1867 - this.anInt1863; arg1 += this.anInt1861; - @Pc(21) int local21 = arg0 + arg1 * Static129.anInt3144; + @Pc(21) int local21 = arg0 + arg1 * Static129.width; @Pc(26) int local26 = this.anInt1867 - 1; @Pc(29) int local29 = this.anInt1859; @Pc(32) int local32 = this.anInt1867; - @Pc(36) int local36 = Static129.anInt3144 - local32; + @Pc(36) int local36 = Static129.width - local32; @Pc(40) int local40 = local32 + local32; @Pc(47) int local47; - if (arg1 < Static129.anInt3147) { - local47 = Static129.anInt3147 - arg1; + if (arg1 < Static129.clipTop) { + local47 = Static129.clipTop - arg1; local29 -= local47; - arg1 = Static129.anInt3147; + arg1 = Static129.clipTop; local26 += local47 * local32; - local21 += local47 * Static129.anInt3144; + local21 += local47 * Static129.width; } - if (arg1 + local29 > Static129.anInt3149) { - local29 -= arg1 + local29 - Static129.anInt3149; + if (arg1 + local29 > Static129.clipBottom) { + local29 -= arg1 + local29 - Static129.clipBottom; } - if (arg0 < Static129.anInt3145) { - local47 = Static129.anInt3145 - arg0; + if (arg0 < Static129.clipLeft) { + local47 = Static129.clipLeft - arg0; local32 -= local47; - arg0 = Static129.anInt3145; + arg0 = Static129.clipLeft; local26 -= local47; local21 += local47; local40 -= local47; local36 += local47; } - if (arg0 + local32 > Static129.anInt3148) { - local47 = arg0 + local32 - Static129.anInt3148; + if (arg0 + local32 > Static129.clipRight) { + local47 = arg0 + local32 - Static129.clipRight; local32 -= local47; local40 -= local47; local36 += local47; } if (local32 > 0 && local29 > 0) { - Static283.method318(Static129.anIntArray297, this.anIntArray20, local26, local21, local32, local29, local36, local40); + Static283.method318(Static129.pixels, this.anIntArray20, local26, local21, local32, local29, local36, local40); } } @@ -802,40 +802,40 @@ public final class SoftwareAlphaSprite extends SoftwareSprite { public final void method1417(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2) { arg0 += this.anInt1863; arg1 += this.anInt1861; - @Pc(15) int local15 = arg0 + arg1 * Static129.anInt3144; + @Pc(15) int local15 = arg0 + arg1 * Static129.width; @Pc(17) int local17 = 0; @Pc(20) int local20 = this.anInt1859; @Pc(23) int local23 = this.anInt1867; - @Pc(27) int local27 = Static129.anInt3144 - local23; + @Pc(27) int local27 = Static129.width - local23; @Pc(29) int local29 = 0; @Pc(36) int local36; - if (arg1 < Static129.anInt3147) { - local36 = Static129.anInt3147 - arg1; + if (arg1 < Static129.clipTop) { + local36 = Static129.clipTop - arg1; local20 -= local36; - arg1 = Static129.anInt3147; + arg1 = Static129.clipTop; local17 = local36 * local23; - local15 += local36 * Static129.anInt3144; + local15 += local36 * Static129.width; } - if (arg1 + local20 > Static129.anInt3149) { - local20 -= arg1 + local20 - Static129.anInt3149; + if (arg1 + local20 > Static129.clipBottom) { + local20 -= arg1 + local20 - Static129.clipBottom; } - if (arg0 < Static129.anInt3145) { - local36 = Static129.anInt3145 - arg0; + if (arg0 < Static129.clipLeft) { + local36 = Static129.clipLeft - arg0; local23 -= local36; - arg0 = Static129.anInt3145; + arg0 = Static129.clipLeft; local17 += local36; local15 += local36; local29 = local36; local27 += local36; } - if (arg0 + local23 > Static129.anInt3148) { - local36 = arg0 + local23 - Static129.anInt3148; + if (arg0 + local23 > Static129.clipRight) { + local36 = arg0 + local23 - Static129.clipRight; local23 -= local36; local29 += local36; local27 += local36; } if (local23 > 0 && local20 > 0) { - Static283.method320(Static129.anIntArray297, this.anIntArray20, local17, local15, local23, local20, local27, local29, arg2); + Static283.method320(Static129.pixels, this.anIntArray20, local17, local15, local23, local20, local27, local29, arg2); } } } diff --git a/client/src/main/java/SoftwareFont.java b/client/src/main/java/SoftwareFont.java index 7eb63ba..3ccf6df 100644 --- a/client/src/main/java/SoftwareFont.java +++ b/client/src/main/java/SoftwareFont.java @@ -23,70 +23,70 @@ public final class SoftwareFont extends Font { @OriginalMember(owner = "client!dd", name = "a", descriptor = "(IIIIIIIZ)V") @Override protected final void renderGlyphTransparent(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4, @OriginalArg(5) int arg5, @OriginalArg(6) int arg6) { - @Pc(5) int local5 = arg1 + arg2 * Static129.anInt3144; - @Pc(9) int local9 = Static129.anInt3144 - arg3; + @Pc(5) int local5 = arg1 + arg2 * Static129.width; + @Pc(9) int local9 = Static129.width - arg3; @Pc(11) int local11 = 0; @Pc(13) int local13 = 0; @Pc(20) int local20; - if (arg2 < Static129.anInt3147) { - local20 = Static129.anInt3147 - arg2; + if (arg2 < Static129.clipTop) { + local20 = Static129.clipTop - arg2; arg4 -= local20; - arg2 = Static129.anInt3147; + arg2 = Static129.clipTop; local13 = local20 * arg3; - local5 += local20 * Static129.anInt3144; + local5 += local20 * Static129.width; } - if (arg2 + arg4 > Static129.anInt3149) { - arg4 -= arg2 + arg4 - Static129.anInt3149; + if (arg2 + arg4 > Static129.clipBottom) { + arg4 -= arg2 + arg4 - Static129.clipBottom; } - if (arg1 < Static129.anInt3145) { - local20 = Static129.anInt3145 - arg1; + if (arg1 < Static129.clipLeft) { + local20 = Static129.clipLeft - arg1; arg3 -= local20; - arg1 = Static129.anInt3145; + arg1 = Static129.clipLeft; local13 += local20; local5 += local20; local11 = local20; local9 += local20; } - if (arg1 + arg3 > Static129.anInt3148) { - local20 = arg1 + arg3 - Static129.anInt3148; + if (arg1 + arg3 > Static129.clipRight) { + local20 = arg1 + arg3 - Static129.clipRight; arg3 -= local20; local11 += local20; local9 += local20; } if (arg3 > 0 && arg4 > 0) { - Static285.method1139(Static129.anIntArray297, this.aByteArrayArray7[arg0], arg5, local13, local5, arg3, arg4, local9, local11, arg6); + Static285.method1139(Static129.pixels, this.aByteArrayArray7[arg0], arg5, local13, local5, arg3, arg4, local9, local11, arg6); } } @OriginalMember(owner = "client!dd", name = "a", descriptor = "(IIIIIIZ)V") @Override protected final void renderGlyph(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4, @OriginalArg(5) int arg5) { - @Pc(5) int local5 = arg1 + arg2 * Static129.anInt3144; - @Pc(9) int local9 = Static129.anInt3144 - arg3; + @Pc(5) int local5 = arg1 + arg2 * Static129.width; + @Pc(9) int local9 = Static129.width - arg3; @Pc(11) int local11 = 0; @Pc(13) int local13 = 0; @Pc(20) int local20; - if (arg2 < Static129.anInt3147) { - local20 = Static129.anInt3147 - arg2; + if (arg2 < Static129.clipTop) { + local20 = Static129.clipTop - arg2; arg4 -= local20; - arg2 = Static129.anInt3147; + arg2 = Static129.clipTop; local13 = local20 * arg3; - local5 += local20 * Static129.anInt3144; + local5 += local20 * Static129.width; } - if (arg2 + arg4 > Static129.anInt3149) { - arg4 -= arg2 + arg4 - Static129.anInt3149; + if (arg2 + arg4 > Static129.clipBottom) { + arg4 -= arg2 + arg4 - Static129.clipBottom; } - if (arg1 < Static129.anInt3145) { - local20 = Static129.anInt3145 - arg1; + if (arg1 < Static129.clipLeft) { + local20 = Static129.clipLeft - arg1; arg3 -= local20; - arg1 = Static129.anInt3145; + arg1 = Static129.clipLeft; local13 += local20; local5 += local20; local11 = local20; local9 += local20; } - if (arg1 + arg3 > Static129.anInt3148) { - local20 = arg1 + arg3 - Static129.anInt3148; + if (arg1 + arg3 > Static129.clipRight) { + local20 = arg1 + arg3 - Static129.clipRight; arg3 -= local20; local11 += local20; local9 += local20; @@ -95,9 +95,9 @@ public final class SoftwareFont extends Font { return; } if (Static129.anIntArray295 == null) { - Static285.method1137(Static129.anIntArray297, this.aByteArrayArray7[arg0], arg5, local13, local5, arg3, arg4, local9, local11); + Static285.method1137(Static129.pixels, this.aByteArrayArray7[arg0], arg5, local13, local5, arg3, arg4, local9, local11); } else { - Static285.method1138(Static129.anIntArray297, this.aByteArrayArray7[arg0], arg1, arg2, arg3, arg4, arg5, local13, local5, local9, local11, Static129.anIntArray295, Static129.anIntArray296); + Static285.method1138(Static129.pixels, this.aByteArrayArray7[arg0], arg1, arg2, arg3, arg4, arg5, local13, local5, local9, local11, Static129.anIntArray295, Static129.anIntArray296); } } } diff --git a/client/src/main/java/SoftwareIndexedSprite.java b/client/src/main/java/SoftwareIndexedSprite.java index 126b979..66e24c2 100644 --- a/client/src/main/java/SoftwareIndexedSprite.java +++ b/client/src/main/java/SoftwareIndexedSprite.java @@ -88,31 +88,31 @@ public final class SoftwareIndexedSprite extends IndexedSprite { if (local5 < local15) { arg3 = ((local5 << 16) + local27 - local9 - 1) / local27; } - local41 = arg0 + arg1 * Static129.anInt3144; - @Pc(125) int local125 = Static129.anInt3144 - arg2; - if (arg1 + arg3 > Static129.anInt3149) { - arg3 -= arg1 + arg3 - Static129.anInt3149; + local41 = arg0 + arg1 * Static129.width; + @Pc(125) int local125 = Static129.width - arg2; + if (arg1 + arg3 > Static129.clipBottom) { + arg3 -= arg1 + arg3 - Static129.clipBottom; } @Pc(145) int local145; - if (arg1 < Static129.anInt3147) { - local145 = Static129.anInt3147 - arg1; + if (arg1 < Static129.clipTop) { + local145 = Static129.clipTop - arg1; arg3 -= local145; - local41 += local145 * Static129.anInt3144; + local41 += local145 * Static129.width; local9 += local27 * local145; } - if (arg0 + arg2 > Static129.anInt3148) { - local145 = arg0 + arg2 - Static129.anInt3148; + if (arg0 + arg2 > Static129.clipRight) { + local145 = arg0 + arg2 - Static129.clipRight; arg2 -= local145; local125 += local145; } - if (arg0 < Static129.anInt3145) { - local145 = Static129.anInt3145 - arg0; + if (arg0 < Static129.clipLeft) { + local145 = Static129.clipLeft - arg0; arg2 -= local145; local41 += local145; local7 += local21 * local145; local125 += local145; } - Static286.method1394(Static129.anIntArray297, this.aByteArray18, this.anIntArray144, local7, local9, local41, local125, arg2, arg3, local21, local27, local2, arg4); + Static286.method1394(Static129.pixels, this.aByteArray18, this.anIntArray144, local7, local9, local41, local125, arg2, arg3, local21, local27, local2, arg4); } @OriginalMember(owner = "client!ek", name = "a", descriptor = "()V") @@ -162,40 +162,40 @@ public final class SoftwareIndexedSprite extends IndexedSprite { public final void method3335(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2) { arg0 += this.anInt4280; arg1 += this.anInt4273; - @Pc(15) int local15 = arg0 + arg1 * Static129.anInt3144; + @Pc(15) int local15 = arg0 + arg1 * Static129.width; @Pc(17) int local17 = 0; @Pc(20) int local20 = this.anInt4278; @Pc(23) int local23 = this.anInt4270; - @Pc(27) int local27 = Static129.anInt3144 - local23; + @Pc(27) int local27 = Static129.width - local23; @Pc(29) int local29 = 0; @Pc(36) int local36; - if (arg1 < Static129.anInt3147) { - local36 = Static129.anInt3147 - arg1; + if (arg1 < Static129.clipTop) { + local36 = Static129.clipTop - arg1; local20 -= local36; - arg1 = Static129.anInt3147; + arg1 = Static129.clipTop; local17 = local36 * local23; - local15 += local36 * Static129.anInt3144; + local15 += local36 * Static129.width; } - if (arg1 + local20 > Static129.anInt3149) { - local20 -= arg1 + local20 - Static129.anInt3149; + if (arg1 + local20 > Static129.clipBottom) { + local20 -= arg1 + local20 - Static129.clipBottom; } - if (arg0 < Static129.anInt3145) { - local36 = Static129.anInt3145 - arg0; + if (arg0 < Static129.clipLeft) { + local36 = Static129.clipLeft - arg0; local23 -= local36; - arg0 = Static129.anInt3145; + arg0 = Static129.clipLeft; local17 += local36; local15 += local36; local29 = local36; local27 += local36; } - if (arg0 + local23 > Static129.anInt3148) { - local36 = arg0 + local23 - Static129.anInt3148; + if (arg0 + local23 > Static129.clipRight) { + local36 = arg0 + local23 - Static129.clipRight; local23 -= local36; local29 += local36; local27 += local36; } if (local23 > 0 && local20 > 0) { - Static286.method1397(Static129.anIntArray297, this.aByteArray18, this.anIntArray144, local17, local15, local23, local20, local27, local29, arg2); + Static286.method1397(Static129.pixels, this.aByteArray18, this.anIntArray144, local17, local15, local23, local20, local27, local29, arg2); } } @@ -245,31 +245,31 @@ public final class SoftwareIndexedSprite extends IndexedSprite { if (local5 < local15) { arg3 = ((local5 << 16) + local27 - local9 - 1) / local27; } - local41 = arg0 + arg1 * Static129.anInt3144; - @Pc(125) int local125 = Static129.anInt3144 - arg2; - if (arg1 + arg3 > Static129.anInt3149) { - arg3 -= arg1 + arg3 - Static129.anInt3149; + local41 = arg0 + arg1 * Static129.width; + @Pc(125) int local125 = Static129.width - arg2; + if (arg1 + arg3 > Static129.clipBottom) { + arg3 -= arg1 + arg3 - Static129.clipBottom; } @Pc(145) int local145; - if (arg1 < Static129.anInt3147) { - local145 = Static129.anInt3147 - arg1; + if (arg1 < Static129.clipTop) { + local145 = Static129.clipTop - arg1; arg3 -= local145; - local41 += local145 * Static129.anInt3144; + local41 += local145 * Static129.width; local9 += local27 * local145; } - if (arg0 + arg2 > Static129.anInt3148) { - local145 = arg0 + arg2 - Static129.anInt3148; + if (arg0 + arg2 > Static129.clipRight) { + local145 = arg0 + arg2 - Static129.clipRight; arg2 -= local145; local125 += local145; } - if (arg0 < Static129.anInt3145) { - local145 = Static129.anInt3145 - arg0; + if (arg0 < Static129.clipLeft) { + local145 = Static129.clipLeft - arg0; arg2 -= local145; local41 += local145; local7 += local21 * local145; local125 += local145; } - Static286.method1391(Static129.anIntArray297, this.aByteArray18, this.anIntArray144, local7, local9, local41, local125, arg2, arg3, local21, local27, local2); + Static286.method1391(Static129.pixels, this.aByteArray18, this.anIntArray144, local7, local9, local41, local125, arg2, arg3, local21, local27, local2); } @OriginalMember(owner = "client!ek", name = "a", descriptor = "(II)V") @@ -277,40 +277,40 @@ public final class SoftwareIndexedSprite extends IndexedSprite { public final void method3336(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) { arg0 += this.anInt4280; arg1 += this.anInt4273; - @Pc(15) int local15 = arg0 + arg1 * Static129.anInt3144; + @Pc(15) int local15 = arg0 + arg1 * Static129.width; @Pc(17) int local17 = 0; @Pc(20) int local20 = this.anInt4278; @Pc(23) int local23 = this.anInt4270; - @Pc(27) int local27 = Static129.anInt3144 - local23; + @Pc(27) int local27 = Static129.width - local23; @Pc(29) int local29 = 0; @Pc(36) int local36; - if (arg1 < Static129.anInt3147) { - local36 = Static129.anInt3147 - arg1; + if (arg1 < Static129.clipTop) { + local36 = Static129.clipTop - arg1; local20 -= local36; - arg1 = Static129.anInt3147; + arg1 = Static129.clipTop; local17 = local36 * local23; - local15 += local36 * Static129.anInt3144; + local15 += local36 * Static129.width; } - if (arg1 + local20 > Static129.anInt3149) { - local20 -= arg1 + local20 - Static129.anInt3149; + if (arg1 + local20 > Static129.clipBottom) { + local20 -= arg1 + local20 - Static129.clipBottom; } - if (arg0 < Static129.anInt3145) { - local36 = Static129.anInt3145 - arg0; + if (arg0 < Static129.clipLeft) { + local36 = Static129.clipLeft - arg0; local23 -= local36; - arg0 = Static129.anInt3145; + arg0 = Static129.clipLeft; local17 += local36; local15 += local36; local29 = local36; local27 += local36; } - if (arg0 + local23 > Static129.anInt3148) { - local36 = arg0 + local23 - Static129.anInt3148; + if (arg0 + local23 > Static129.clipRight) { + local36 = arg0 + local23 - Static129.clipRight; local23 -= local36; local29 += local36; local27 += local36; } if (local23 > 0 && local20 > 0) { - Static286.method1393(Static129.anIntArray297, this.aByteArray18, this.anIntArray144, local17, local15, local23, local20, local27, local29); + Static286.method1393(Static129.pixels, this.aByteArray18, this.anIntArray144, local17, local15, local23, local20, local27, local29); } } } diff --git a/client/src/main/java/SoftwareModel.java b/client/src/main/java/SoftwareModel.java index 709900e..c4aacc5 100644 --- a/client/src/main/java/SoftwareModel.java +++ b/client/src/main/java/SoftwareModel.java @@ -159,7 +159,7 @@ public final class SoftwareModel extends Model { this.aShortArray92 = new short[this.anInt5787]; for (local133 = 0; local133 < this.anInt5787; local133++) { @Pc(142) short local142 = arg0.aShortArray23[local133]; - if (local142 != -1 && Rasteriser.anInterface1_2.method3236(local142)) { + if (local142 != -1 && Rasteriser.textureProvider.method3236(local142)) { this.aShortArray92[local133] = local142; } else { this.aShortArray92[local133] = -1; @@ -429,11 +429,11 @@ public final class SoftwareModel extends Model { @Pc(12) int local12 = this.anIntArray534[arg0]; @Pc(17) int local17 = this.anIntArray524[arg0]; @Pc(22) int local22 = this.anIntArray529[arg0]; - Rasteriser.aBoolean138 = Static268.aBooleanArray133[arg0]; + Rasteriser.testX = Static268.aBooleanArray133[arg0]; if (this.aByteArray75 == null) { - Rasteriser.anInt2473 = 0; + Rasteriser.alpha = 0; } else { - Rasteriser.anInt2473 = this.aByteArray75[arg0] & 0xFF; + Rasteriser.alpha = this.aByteArray75[arg0] & 0xFF; } if (this.aShortArray92 != null && this.aShortArray92[arg0] != -1) { @Pc(141) int local141; @@ -450,14 +450,14 @@ public final class SoftwareModel extends Model { local151 = this.anIntArray525[local136]; } if (this.anIntArray532[arg0] == -1) { - Rasteriser.method1912(Static268.anIntArray551[local12], Static268.anIntArray551[local17], Static268.anIntArray551[local22], Static268.anIntArray556[local12], Static268.anIntArray556[local17], Static268.anIntArray556[local22], this.anIntArray533[arg0], this.anIntArray533[arg0], this.anIntArray533[arg0], Static268.anIntArray560[local141], Static268.anIntArray560[local146], Static268.anIntArray560[local151], Static268.anIntArray548[local141], Static268.anIntArray548[local146], Static268.anIntArray548[local151], Static268.anIntArray544[local141], Static268.anIntArray544[local146], Static268.anIntArray544[local151], this.aShortArray92[arg0]); + Rasteriser.fillTexturedAlphaTriangle(Static268.anIntArray551[local12], Static268.anIntArray551[local17], Static268.anIntArray551[local22], Static268.anIntArray556[local12], Static268.anIntArray556[local17], Static268.anIntArray556[local22], this.anIntArray533[arg0], this.anIntArray533[arg0], this.anIntArray533[arg0], Static268.anIntArray560[local141], Static268.anIntArray560[local146], Static268.anIntArray560[local151], Static268.anIntArray548[local141], Static268.anIntArray548[local146], Static268.anIntArray548[local151], Static268.anIntArray544[local141], Static268.anIntArray544[local146], Static268.anIntArray544[local151], this.aShortArray92[arg0]); } else { - Rasteriser.method1912(Static268.anIntArray551[local12], Static268.anIntArray551[local17], Static268.anIntArray551[local22], Static268.anIntArray556[local12], Static268.anIntArray556[local17], Static268.anIntArray556[local22], this.anIntArray533[arg0], this.anIntArray523[arg0], this.anIntArray532[arg0], Static268.anIntArray560[local141], Static268.anIntArray560[local146], Static268.anIntArray560[local151], Static268.anIntArray548[local141], Static268.anIntArray548[local146], Static268.anIntArray548[local151], Static268.anIntArray544[local141], Static268.anIntArray544[local146], Static268.anIntArray544[local151], this.aShortArray92[arg0]); + Rasteriser.fillTexturedAlphaTriangle(Static268.anIntArray551[local12], Static268.anIntArray551[local17], Static268.anIntArray551[local22], Static268.anIntArray556[local12], Static268.anIntArray556[local17], Static268.anIntArray556[local22], this.anIntArray533[arg0], this.anIntArray523[arg0], this.anIntArray532[arg0], Static268.anIntArray560[local141], Static268.anIntArray560[local146], Static268.anIntArray560[local151], Static268.anIntArray548[local141], Static268.anIntArray548[local146], Static268.anIntArray548[local151], Static268.anIntArray544[local141], Static268.anIntArray544[local146], Static268.anIntArray544[local151], this.aShortArray92[arg0]); } } else if (this.anIntArray532[arg0] == -1) { - Rasteriser.method1918(Static268.anIntArray551[local12], Static268.anIntArray551[local17], Static268.anIntArray551[local22], Static268.anIntArray556[local12], Static268.anIntArray556[local17], Static268.anIntArray556[local22], Rasteriser.anIntArray220[this.anIntArray533[arg0] & 0xFFFF]); + Rasteriser.fillTriangle(Static268.anIntArray551[local12], Static268.anIntArray551[local17], Static268.anIntArray551[local22], Static268.anIntArray556[local12], Static268.anIntArray556[local17], Static268.anIntArray556[local22], Rasteriser.palette[this.anIntArray533[arg0] & 0xFFFF]); } else { - Rasteriser.method1928(Static268.anIntArray551[local12], Static268.anIntArray551[local17], Static268.anIntArray551[local22], Static268.anIntArray556[local12], Static268.anIntArray556[local17], Static268.anIntArray556[local22], this.anIntArray533[arg0] & 0xFFFF, this.anIntArray523[arg0] & 0xFFFF, this.anIntArray532[arg0] & 0xFFFF); + Rasteriser.fillGouraudTriangle(Static268.anIntArray551[local12], Static268.anIntArray551[local17], Static268.anIntArray551[local22], Static268.anIntArray556[local12], Static268.anIntArray556[local17], Static268.anIntArray556[local22], this.anIntArray533[arg0] & 0xFFFF, this.anIntArray523[arg0] & 0xFFFF, this.anIntArray532[arg0] & 0xFFFF); } } @@ -631,27 +631,27 @@ public final class SoftwareModel extends Model { } @Pc(71) int local71 = arg7 * arg3 + arg5 * arg4 >> 16; @Pc(78) int local78 = local71 + this.aShort34 << 9; - if (local78 / local38 <= Static240.anInt5334) { + if (local78 / local38 <= Static240.screenLowerX) { return; } @Pc(91) int local91 = local71 - this.aShort34 << 9; - if (local91 / local38 >= Static247.anInt5405) { + if (local91 / local38 >= Static247.screenUpperX) { return; } @Pc(107) int local107 = arg6 * arg2 - local14 * arg1 >> 16; @Pc(123) int local123 = local107 + (this.aShort34 * arg1 + this.aShort37 * arg2 >> 16) << 9; - if (local123 / local38 <= Static1.anInt4) { + if (local123 / local38 <= Static1.screenLowerY) { return; } @Pc(146) int local146 = local107 + (-this.aShort34 * arg1 + this.aShort38 * arg2 >> 16) << 9; - if (local146 / local38 >= Static148.anInt3535) { + if (local146 / local38 >= Static148.screenUpperY) { return; } @Pc(154) boolean local154 = false; @Pc(161) boolean local161 = local53 <= 50; @Pc(170) boolean local170 = local161 || this.anInt5789 > 0; - @Pc(172) int local172 = Rasteriser.anInt2471; - @Pc(174) int local174 = Rasteriser.anInt2469; + @Pc(172) int local172 = Rasteriser.centerX; + @Pc(174) int local174 = Rasteriser.centerY; @Pc(176) int local176 = 0; @Pc(178) int local178 = 0; if (arg0 != 0) { @@ -937,8 +937,8 @@ public final class SoftwareModel extends Model { if (!this.aBoolean305) { this.method4592(); } - @Pc(6) int local6 = Rasteriser.anInt2471; - @Pc(8) int local8 = Rasteriser.anInt2469; + @Pc(6) int local6 = Rasteriser.centerX; + @Pc(8) int local8 = Rasteriser.centerY; @Pc(12) int local12 = MathUtils.anIntArray223[0]; @Pc(16) int local16 = MathUtils.anIntArray225[0]; @Pc(20) int local20 = MathUtils.anIntArray223[arg0]; @@ -984,8 +984,8 @@ public final class SoftwareModel extends Model { @OriginalMember(owner = "client!w", name = "g", descriptor = "(I)V") private void method4587(@OriginalArg(0) int arg0) { - @Pc(1) int local1 = Rasteriser.anInt2471; - @Pc(3) int local3 = Rasteriser.anInt2469; + @Pc(1) int local1 = Rasteriser.centerX; + @Pc(3) int local3 = Rasteriser.centerY; @Pc(5) int local5 = 0; @Pc(10) int local10 = this.anIntArray534[arg0]; @Pc(15) int local15 = this.anIntArray524[arg0]; @@ -994,9 +994,9 @@ public final class SoftwareModel extends Model { @Pc(28) int local28 = Static268.anIntArray544[local15]; @Pc(32) int local32 = Static268.anIntArray544[local20]; if (this.aByteArray75 == null) { - Rasteriser.anInt2473 = 0; + Rasteriser.alpha = 0; } else { - Rasteriser.anInt2473 = this.aByteArray75[arg0] & 0xFF; + Rasteriser.alpha = this.aByteArray75[arg0] & 0xFF; } @Pc(75) int local75; @Pc(79) int local79; @@ -1073,14 +1073,14 @@ public final class SoftwareModel extends Model { local99 = Static268.anIntArray547[0]; @Pc(614) int local614 = Static268.anIntArray547[1]; @Pc(618) int local618 = Static268.anIntArray547[2]; - Rasteriser.aBoolean138 = false; + Rasteriser.testX = false; @Pc(709) int local709; @Pc(714) int local714; @Pc(719) int local719; @Pc(704) int local704; if (local5 == 3) { - if (local75 < 0 || local79 < 0 || local86 < 0 || local75 > Rasteriser.anInt2472 || local79 > Rasteriser.anInt2472 || local86 > Rasteriser.anInt2472) { - Rasteriser.aBoolean138 = true; + if (local75 < 0 || local79 < 0 || local86 < 0 || local75 > Rasteriser.width || local79 > Rasteriser.width || local86 > Rasteriser.width) { + Rasteriser.testX = true; } if (this.aShortArray92 != null && this.aShortArray92[arg0] != -1) { if (this.aByteArray74 == null || this.aByteArray74[arg0] == -1) { @@ -1094,21 +1094,21 @@ public final class SoftwareModel extends Model { local719 = this.anIntArray525[local704]; } if (this.anIntArray532[arg0] == -1) { - Rasteriser.method1912(local99, local614, local618, local75, local79, local86, this.anIntArray533[arg0], this.anIntArray533[arg0], this.anIntArray533[arg0], Static268.anIntArray560[local709], Static268.anIntArray560[local714], Static268.anIntArray560[local719], Static268.anIntArray548[local709], Static268.anIntArray548[local714], Static268.anIntArray548[local719], Static268.anIntArray544[local709], Static268.anIntArray544[local714], Static268.anIntArray544[local719], this.aShortArray92[arg0]); + Rasteriser.fillTexturedAlphaTriangle(local99, local614, local618, local75, local79, local86, this.anIntArray533[arg0], this.anIntArray533[arg0], this.anIntArray533[arg0], Static268.anIntArray560[local709], Static268.anIntArray560[local714], Static268.anIntArray560[local719], Static268.anIntArray548[local709], Static268.anIntArray548[local714], Static268.anIntArray548[local719], Static268.anIntArray544[local709], Static268.anIntArray544[local714], Static268.anIntArray544[local719], this.aShortArray92[arg0]); } else { - Rasteriser.method1912(local99, local614, local618, local75, local79, local86, Static268.anIntArray553[0], Static268.anIntArray553[1], Static268.anIntArray553[2], Static268.anIntArray560[local709], Static268.anIntArray560[local714], Static268.anIntArray560[local719], Static268.anIntArray548[local709], Static268.anIntArray548[local714], Static268.anIntArray548[local719], Static268.anIntArray544[local709], Static268.anIntArray544[local714], Static268.anIntArray544[local719], this.aShortArray92[arg0]); + Rasteriser.fillTexturedAlphaTriangle(local99, local614, local618, local75, local79, local86, Static268.anIntArray553[0], Static268.anIntArray553[1], Static268.anIntArray553[2], Static268.anIntArray560[local709], Static268.anIntArray560[local714], Static268.anIntArray560[local719], Static268.anIntArray548[local709], Static268.anIntArray548[local714], Static268.anIntArray548[local719], Static268.anIntArray544[local709], Static268.anIntArray544[local714], Static268.anIntArray544[local719], this.aShortArray92[arg0]); } } else if (this.anIntArray532[arg0] == -1) { - Rasteriser.method1918(local99, local614, local618, local75, local79, local86, Rasteriser.anIntArray220[this.anIntArray533[arg0] & 0xFFFF]); + Rasteriser.fillTriangle(local99, local614, local618, local75, local79, local86, Rasteriser.palette[this.anIntArray533[arg0] & 0xFFFF]); } else { - Rasteriser.method1928(local99, local614, local618, local75, local79, local86, Static268.anIntArray553[0], Static268.anIntArray553[1], Static268.anIntArray553[2]); + Rasteriser.fillGouraudTriangle(local99, local614, local618, local75, local79, local86, Static268.anIntArray553[0], Static268.anIntArray553[1], Static268.anIntArray553[2]); } } if (local5 != 4) { return; } - if (local75 < 0 || local79 < 0 || local86 < 0 || local75 > Rasteriser.anInt2472 || local79 > Rasteriser.anInt2472 || local86 > Rasteriser.anInt2472 || Static268.anIntArray542[3] < 0 || Static268.anIntArray542[3] > Rasteriser.anInt2472) { - Rasteriser.aBoolean138 = true; + if (local75 < 0 || local79 < 0 || local86 < 0 || local75 > Rasteriser.width || local79 > Rasteriser.width || local86 > Rasteriser.width || Static268.anIntArray542[3] < 0 || Static268.anIntArray542[3] > Rasteriser.width) { + Rasteriser.testX = true; } if (this.aShortArray92 != null && this.aShortArray92[arg0] != -1) { if (this.aByteArray74 == null || this.aByteArray74[arg0] == -1) { @@ -1123,19 +1123,19 @@ public final class SoftwareModel extends Model { } @Pc(984) short local984 = this.aShortArray92[arg0]; if (this.anIntArray532[arg0] == -1) { - Rasteriser.method1912(local99, local614, local618, local75, local79, local86, this.anIntArray533[arg0], this.anIntArray533[arg0], this.anIntArray533[arg0], Static268.anIntArray560[local709], Static268.anIntArray560[local714], Static268.anIntArray560[local719], Static268.anIntArray548[local709], Static268.anIntArray548[local714], Static268.anIntArray548[local719], Static268.anIntArray544[local709], Static268.anIntArray544[local714], Static268.anIntArray544[local719], local984); - Rasteriser.method1912(local99, local618, Static268.anIntArray547[3], local75, local86, Static268.anIntArray542[3], this.anIntArray533[arg0], this.anIntArray533[arg0], this.anIntArray533[arg0], Static268.anIntArray560[local709], Static268.anIntArray560[local714], Static268.anIntArray560[local719], Static268.anIntArray548[local709], Static268.anIntArray548[local714], Static268.anIntArray548[local719], Static268.anIntArray544[local709], Static268.anIntArray544[local714], Static268.anIntArray544[local719], local984); + Rasteriser.fillTexturedAlphaTriangle(local99, local614, local618, local75, local79, local86, this.anIntArray533[arg0], this.anIntArray533[arg0], this.anIntArray533[arg0], Static268.anIntArray560[local709], Static268.anIntArray560[local714], Static268.anIntArray560[local719], Static268.anIntArray548[local709], Static268.anIntArray548[local714], Static268.anIntArray548[local719], Static268.anIntArray544[local709], Static268.anIntArray544[local714], Static268.anIntArray544[local719], local984); + Rasteriser.fillTexturedAlphaTriangle(local99, local618, Static268.anIntArray547[3], local75, local86, Static268.anIntArray542[3], this.anIntArray533[arg0], this.anIntArray533[arg0], this.anIntArray533[arg0], Static268.anIntArray560[local709], Static268.anIntArray560[local714], Static268.anIntArray560[local719], Static268.anIntArray548[local709], Static268.anIntArray548[local714], Static268.anIntArray548[local719], Static268.anIntArray544[local709], Static268.anIntArray544[local714], Static268.anIntArray544[local719], local984); } else { - Rasteriser.method1912(local99, local614, local618, local75, local79, local86, Static268.anIntArray553[0], Static268.anIntArray553[1], Static268.anIntArray553[2], Static268.anIntArray560[local709], Static268.anIntArray560[local714], Static268.anIntArray560[local719], Static268.anIntArray548[local709], Static268.anIntArray548[local714], Static268.anIntArray548[local719], Static268.anIntArray544[local709], Static268.anIntArray544[local714], Static268.anIntArray544[local719], local984); - Rasteriser.method1912(local99, local618, Static268.anIntArray547[3], local75, local86, Static268.anIntArray542[3], Static268.anIntArray553[0], Static268.anIntArray553[2], Static268.anIntArray553[3], Static268.anIntArray560[local709], Static268.anIntArray560[local714], Static268.anIntArray560[local719], Static268.anIntArray548[local709], Static268.anIntArray548[local714], Static268.anIntArray548[local719], Static268.anIntArray544[local709], Static268.anIntArray544[local714], Static268.anIntArray544[local719], local984); + Rasteriser.fillTexturedAlphaTriangle(local99, local614, local618, local75, local79, local86, Static268.anIntArray553[0], Static268.anIntArray553[1], Static268.anIntArray553[2], Static268.anIntArray560[local709], Static268.anIntArray560[local714], Static268.anIntArray560[local719], Static268.anIntArray548[local709], Static268.anIntArray548[local714], Static268.anIntArray548[local719], Static268.anIntArray544[local709], Static268.anIntArray544[local714], Static268.anIntArray544[local719], local984); + Rasteriser.fillTexturedAlphaTriangle(local99, local618, Static268.anIntArray547[3], local75, local86, Static268.anIntArray542[3], Static268.anIntArray553[0], Static268.anIntArray553[2], Static268.anIntArray553[3], Static268.anIntArray560[local709], Static268.anIntArray560[local714], Static268.anIntArray560[local719], Static268.anIntArray548[local709], Static268.anIntArray548[local714], Static268.anIntArray548[local719], Static268.anIntArray544[local709], Static268.anIntArray544[local714], Static268.anIntArray544[local719], local984); } } else if (this.anIntArray532[arg0] == -1) { - local709 = Rasteriser.anIntArray220[this.anIntArray533[arg0] & 0xFFFF]; - Rasteriser.method1918(local99, local614, local618, local75, local79, local86, local709); - Rasteriser.method1918(local99, local618, Static268.anIntArray547[3], local75, local86, Static268.anIntArray542[3], local709); + local709 = Rasteriser.palette[this.anIntArray533[arg0] & 0xFFFF]; + Rasteriser.fillTriangle(local99, local614, local618, local75, local79, local86, local709); + Rasteriser.fillTriangle(local99, local618, Static268.anIntArray547[3], local75, local86, Static268.anIntArray542[3], local709); } else { - Rasteriser.method1928(local99, local614, local618, local75, local79, local86, Static268.anIntArray553[0], Static268.anIntArray553[1], Static268.anIntArray553[2]); - Rasteriser.method1928(local99, local618, Static268.anIntArray547[3], local75, local86, Static268.anIntArray542[3], Static268.anIntArray553[0], Static268.anIntArray553[2], Static268.anIntArray553[3]); + Rasteriser.fillGouraudTriangle(local99, local614, local618, local75, local79, local86, Static268.anIntArray553[0], Static268.anIntArray553[1], Static268.anIntArray553[2]); + Rasteriser.fillGouraudTriangle(local99, local618, Static268.anIntArray547[3], local75, local86, Static268.anIntArray542[3], Static268.anIntArray553[0], Static268.anIntArray553[2], Static268.anIntArray553[3]); } } @@ -1487,13 +1487,13 @@ public final class SoftwareModel extends Model { } } } else { - if (arg1 && this.method4589(Static150.anInt3582 + Rasteriser.anInt2471, Static34.anInt1053 + Rasteriser.anInt2469, Static268.anIntArray551[local51], Static268.anIntArray551[local56], Static268.anIntArray551[local61], local65, local69, local73)) { + if (arg1 && this.method4589(Static150.anInt3582 + Rasteriser.centerX, Static34.anInt1053 + Rasteriser.centerY, Static268.anIntArray551[local51], Static268.anIntArray551[local56], Static268.anIntArray551[local61], local65, local69, local73)) { Static259.aLongArray11[Static2.anInt7++] = arg2; arg1 = false; } if ((local65 - local69) * (Static268.anIntArray551[local61] - Static268.anIntArray551[local56]) - (Static268.anIntArray551[local51] - Static268.anIntArray551[local56]) * (local73 - local69) > 0) { Static268.aBooleanArray132[local11] = false; - if (local65 >= 0 && local69 >= 0 && local73 >= 0 && local65 <= Rasteriser.anInt2472 && local69 <= Rasteriser.anInt2472 && local73 <= Rasteriser.anInt2472) { + if (local65 >= 0 && local69 >= 0 && local73 >= 0 && local65 <= Rasteriser.width && local69 <= Rasteriser.width && local73 <= Rasteriser.width) { Static268.aBooleanArray133[local11] = false; } else { Static268.aBooleanArray133[local11] = true; @@ -1739,8 +1739,8 @@ public final class SoftwareModel extends Model { if (!this.aBoolean305) { this.method4592(); } - @Pc(6) int local6 = Rasteriser.anInt2471; - @Pc(8) int local8 = Rasteriser.anInt2469; + @Pc(6) int local6 = Rasteriser.centerX; + @Pc(8) int local8 = Rasteriser.centerY; @Pc(12) int local12 = MathUtils.anIntArray223[0]; @Pc(16) int local16 = MathUtils.anIntArray225[0]; @Pc(20) int local20 = MathUtils.anIntArray223[arg0]; diff --git a/client/src/main/java/SoftwareSprite.java b/client/src/main/java/SoftwareSprite.java index 5df7ae5..0af5995 100644 --- a/client/src/main/java/SoftwareSprite.java +++ b/client/src/main/java/SoftwareSprite.java @@ -82,40 +82,40 @@ public class SoftwareSprite extends Sprite { public void method1415(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) { arg0 += this.anInt1863; arg1 += this.anInt1861; - @Pc(15) int local15 = arg0 + arg1 * Static129.anInt3144; + @Pc(15) int local15 = arg0 + arg1 * Static129.width; @Pc(17) int local17 = 0; @Pc(20) int local20 = this.anInt1859; @Pc(23) int local23 = this.anInt1867; - @Pc(27) int local27 = Static129.anInt3144 - local23; + @Pc(27) int local27 = Static129.width - local23; @Pc(29) int local29 = 0; @Pc(36) int local36; - if (arg1 < Static129.anInt3147) { - local36 = Static129.anInt3147 - arg1; + if (arg1 < Static129.clipTop) { + local36 = Static129.clipTop - arg1; local20 -= local36; - arg1 = Static129.anInt3147; + arg1 = Static129.clipTop; local17 = local36 * local23; - local15 += local36 * Static129.anInt3144; + local15 += local36 * Static129.width; } - if (arg1 + local20 > Static129.anInt3149) { - local20 -= arg1 + local20 - Static129.anInt3149; + if (arg1 + local20 > Static129.clipBottom) { + local20 -= arg1 + local20 - Static129.clipBottom; } - if (arg0 < Static129.anInt3145) { - local36 = Static129.anInt3145 - arg0; + if (arg0 < Static129.clipLeft) { + local36 = Static129.clipLeft - arg0; local23 -= local36; - arg0 = Static129.anInt3145; + arg0 = Static129.clipLeft; local17 += local36; local15 += local36; local29 = local36; local27 += local36; } - if (arg0 + local23 > Static129.anInt3148) { - local36 = arg0 + local23 - Static129.anInt3148; + if (arg0 + local23 > Static129.clipRight) { + local36 = arg0 + local23 - Static129.clipRight; local23 -= local36; local29 += local36; local27 += local36; } if (local23 > 0 && local20 > 0) { - Static290.method305(Static129.anIntArray297, this.anIntArray20, local17, local15, local23, local20, local27, local29); + Static290.method305(Static129.pixels, this.anIntArray20, local17, local15, local23, local20, local27, local29); } } @@ -206,17 +206,17 @@ public class SoftwareSprite extends Sprite { local166 = local166 + 15 >> 4; local196 >>= 0x4; local198 = local198 + 15 >> 4; - if (local164 < Static129.anInt3145) { - local164 = Static129.anInt3145; + if (local164 < Static129.clipLeft) { + local164 = Static129.clipLeft; } - if (local166 > Static129.anInt3148) { - local166 = Static129.anInt3148; + if (local166 > Static129.clipRight) { + local166 = Static129.clipRight; } - if (local196 < Static129.anInt3147) { - local196 = Static129.anInt3147; + if (local196 < Static129.clipTop) { + local196 = Static129.clipTop; } - if (local198 > Static129.anInt3149) { - local198 = Static129.anInt3149; + if (local198 > Static129.clipBottom) { + local198 = Static129.clipBottom; } local166 = local164 - local166; if (local166 >= 0) { @@ -226,7 +226,7 @@ public class SoftwareSprite extends Sprite { if (local198 >= 0) { return; } - @Pc(319) int local319 = local196 * Static129.anInt3144 + local164; + @Pc(319) int local319 = local196 * Static129.width + local164; @Pc(324) double local324 = 1.6777216E7D / (double) arg5; @Pc(333) int local333 = (int) Math.floor(Math.sin(local23) * local324 + 0.5D); @Pc(342) int local342 = (int) Math.floor(Math.cos(local23) * local324 + 0.5D); @@ -266,7 +266,7 @@ public class SoftwareSprite extends Sprite { if (local432 == 0) { local388++; } else { - Static129.anIntArray297[local388++] = local432; + Static129.pixels[local388++] = local432; } local694 += local342; local394++; @@ -274,7 +274,7 @@ public class SoftwareSprite extends Sprite { } local384++; local378 += local342; - local319 += Static129.anInt3144; + local319 += Static129.width; } } else if (local333 < 0) { local384 = local198; @@ -312,7 +312,7 @@ public class SoftwareSprite extends Sprite { if (local432 == 0) { local388++; } else { - Static129.anIntArray297[local388++] = local432; + Static129.pixels[local388++] = local432; } local694 += local342; local468 += local333; @@ -321,7 +321,7 @@ public class SoftwareSprite extends Sprite { local384++; local368 -= local333; local378 += local342; - local319 += Static129.anInt3144; + local319 += Static129.width; } } else { local384 = local198; @@ -358,7 +358,7 @@ public class SoftwareSprite extends Sprite { if (local432 == 0) { local388++; } else { - Static129.anIntArray297[local388++] = local432; + Static129.pixels[local388++] = local432; } local694 += local342; local468 += local333; @@ -367,7 +367,7 @@ public class SoftwareSprite extends Sprite { local384++; local368 -= local333; local378 += local342; - local319 += Static129.anInt3144; + local319 += Static129.width; } } } else if (local333 == 0) { @@ -392,7 +392,7 @@ public class SoftwareSprite extends Sprite { if (local432 == 0) { local388++; } else { - Static129.anIntArray297[local388++] = local432; + Static129.pixels[local388++] = local432; } local694 += local342; local394++; @@ -400,7 +400,7 @@ public class SoftwareSprite extends Sprite { } local384++; local378 += local342; - local319 += Static129.anInt3144; + local319 += Static129.width; } } else if (local333 < 0) { local384 = local198; @@ -437,7 +437,7 @@ public class SoftwareSprite extends Sprite { if (local432 == 0) { local388++; } else { - Static129.anIntArray297[local388++] = local432; + Static129.pixels[local388++] = local432; } local694 += local342; local468 += local333; @@ -446,7 +446,7 @@ public class SoftwareSprite extends Sprite { local384++; local368 -= local333; local378 += local342; - local319 += Static129.anInt3144; + local319 += Static129.width; } } else { local384 = local198; @@ -482,7 +482,7 @@ public class SoftwareSprite extends Sprite { if (local432 == 0) { local388++; } else { - Static129.anIntArray297[local388++] = local432; + Static129.pixels[local388++] = local432; } local694 += local342; local468 += local333; @@ -491,7 +491,7 @@ public class SoftwareSprite extends Sprite { local384++; local368 -= local333; local378 += local342; - local319 += Static129.anInt3144; + local319 += Static129.width; } } } else if (local333 == 0) { @@ -505,13 +505,13 @@ public class SoftwareSprite extends Sprite { if (local432 == 0) { local388++; } else { - Static129.anIntArray297[local388++] = local432; + Static129.pixels[local388++] = local432; } local394++; } } local384++; - local319 += Static129.anInt3144; + local319 += Static129.width; } } else if (local333 < 0) { local384 = local198; @@ -536,7 +536,7 @@ public class SoftwareSprite extends Sprite { if (local432 == 0) { local388++; } else { - Static129.anIntArray297[local388++] = local432; + Static129.pixels[local388++] = local432; } local468 += local333; local394++; @@ -544,7 +544,7 @@ public class SoftwareSprite extends Sprite { } local384++; local368 -= local333; - local319 += Static129.anInt3144; + local319 += Static129.width; } } else { local384 = local198; @@ -568,7 +568,7 @@ public class SoftwareSprite extends Sprite { if (local432 == 0) { local388++; } else { - Static129.anIntArray297[local388++] = local432; + Static129.pixels[local388++] = local432; } local468 += local333; local394++; @@ -576,7 +576,7 @@ public class SoftwareSprite extends Sprite { } local384++; local368 -= local333; - local319 += Static129.anInt3144; + local319 += Static129.width; } } } @@ -619,7 +619,7 @@ public class SoftwareSprite extends Sprite { @Pc(33) int local33 = local21 * 256 >> 8; @Pc(45) int local45 = local27 * -10 + local33 * -10 + 983040; @Pc(57) int local57 = local33 * -10 + 983040 - local27 * -10; - @Pc(63) int local63 = arg0 + arg1 * Static129.anInt3144; + @Pc(63) int local63 = arg0 + arg1 * Static129.width; for (@Pc(65) int local65 = 0; local65 < 20; local65++) { @Pc(70) int local70 = local63; @Pc(72) int local72 = local45; @@ -629,14 +629,14 @@ public class SoftwareSprite extends Sprite { if (local93 == 0) { local70++; } else { - Static129.anIntArray297[local70++] = local93; + Static129.pixels[local70++] = local93; } local72 += local33; local74 -= local27; } local45 += local27; local57 += local33; - local63 += Static129.anInt3144; + local63 += Static129.width; } } catch (@Pc(128) Exception local128) { } @@ -647,40 +647,40 @@ public class SoftwareSprite extends Sprite { public void method1421(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) { arg0 += this.anInt1860 - this.anInt1867 - this.anInt1863; arg1 += this.anInt1861; - @Pc(21) int local21 = arg0 + arg1 * Static129.anInt3144; + @Pc(21) int local21 = arg0 + arg1 * Static129.width; @Pc(26) int local26 = this.anInt1867 - 1; @Pc(29) int local29 = this.anInt1859; @Pc(32) int local32 = this.anInt1867; - @Pc(36) int local36 = Static129.anInt3144 - local32; + @Pc(36) int local36 = Static129.width - local32; @Pc(40) int local40 = local32 + local32; @Pc(47) int local47; - if (arg1 < Static129.anInt3147) { - local47 = Static129.anInt3147 - arg1; + if (arg1 < Static129.clipTop) { + local47 = Static129.clipTop - arg1; local29 -= local47; - arg1 = Static129.anInt3147; + arg1 = Static129.clipTop; local26 += local47 * local32; - local21 += local47 * Static129.anInt3144; + local21 += local47 * Static129.width; } - if (arg1 + local29 > Static129.anInt3149) { - local29 -= arg1 + local29 - Static129.anInt3149; + if (arg1 + local29 > Static129.clipBottom) { + local29 -= arg1 + local29 - Static129.clipBottom; } - if (arg0 < Static129.anInt3145) { - local47 = Static129.anInt3145 - arg0; + if (arg0 < Static129.clipLeft) { + local47 = Static129.clipLeft - arg0; local32 -= local47; - arg0 = Static129.anInt3145; + arg0 = Static129.clipLeft; local26 -= local47; local21 += local47; local40 -= local47; local36 += local47; } - if (arg0 + local32 > Static129.anInt3148) { - local47 = arg0 + local32 - Static129.anInt3148; + if (arg0 + local32 > Static129.clipRight) { + local47 = arg0 + local32 - Static129.clipRight; local32 -= local47; local40 -= local47; local36 += local47; } if (local32 > 0 && local29 > 0) { - Static290.method302(Static129.anIntArray297, this.anIntArray20, local26, local21, local32, local29, local36, local40); + Static290.method302(Static129.pixels, this.anIntArray20, local26, local21, local32, local29, local36, local40); } } @@ -689,40 +689,40 @@ public class SoftwareSprite extends Sprite { public void method1417(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2) { arg0 += this.anInt1863; arg1 += this.anInt1861; - @Pc(15) int local15 = arg0 + arg1 * Static129.anInt3144; + @Pc(15) int local15 = arg0 + arg1 * Static129.width; @Pc(17) int local17 = 0; @Pc(20) int local20 = this.anInt1859; @Pc(23) int local23 = this.anInt1867; - @Pc(27) int local27 = Static129.anInt3144 - local23; + @Pc(27) int local27 = Static129.width - local23; @Pc(29) int local29 = 0; @Pc(36) int local36; - if (arg1 < Static129.anInt3147) { - local36 = Static129.anInt3147 - arg1; + if (arg1 < Static129.clipTop) { + local36 = Static129.clipTop - arg1; local20 -= local36; - arg1 = Static129.anInt3147; + arg1 = Static129.clipTop; local17 = local36 * local23; - local15 += local36 * Static129.anInt3144; + local15 += local36 * Static129.width; } - if (arg1 + local20 > Static129.anInt3149) { - local20 -= arg1 + local20 - Static129.anInt3149; + if (arg1 + local20 > Static129.clipBottom) { + local20 -= arg1 + local20 - Static129.clipBottom; } - if (arg0 < Static129.anInt3145) { - local36 = Static129.anInt3145 - arg0; + if (arg0 < Static129.clipLeft) { + local36 = Static129.clipLeft - arg0; local23 -= local36; - arg0 = Static129.anInt3145; + arg0 = Static129.clipLeft; local17 += local36; local15 += local36; local29 = local36; local27 += local36; } - if (arg0 + local23 > Static129.anInt3148) { - local36 = arg0 + local23 - Static129.anInt3148; + if (arg0 + local23 > Static129.clipRight) { + local36 = arg0 + local23 - Static129.clipRight; local23 -= local36; local29 += local36; local27 += local36; } if (local23 > 0 && local20 > 0) { - Static290.method308(Static129.anIntArray297, this.anIntArray20, local17, local15, local23, local20, local27, local29, arg2); + Static290.method308(Static129.pixels, this.anIntArray20, local17, local15, local23, local20, local27, local29, arg2); } } @@ -731,40 +731,40 @@ public class SoftwareSprite extends Sprite { public void method1423(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) { arg0 += this.anInt1863; arg1 += this.anInt1861; - @Pc(15) int local15 = arg0 + arg1 * Static129.anInt3144; + @Pc(15) int local15 = arg0 + arg1 * Static129.width; @Pc(17) int local17 = 0; @Pc(20) int local20 = this.anInt1859; @Pc(23) int local23 = this.anInt1867; - @Pc(27) int local27 = Static129.anInt3144 - local23; + @Pc(27) int local27 = Static129.width - local23; @Pc(29) int local29 = 0; @Pc(36) int local36; - if (arg1 < Static129.anInt3147) { - local36 = Static129.anInt3147 - arg1; + if (arg1 < Static129.clipTop) { + local36 = Static129.clipTop - arg1; local20 -= local36; - arg1 = Static129.anInt3147; + arg1 = Static129.clipTop; local17 = local36 * local23; - local15 += local36 * Static129.anInt3144; + local15 += local36 * Static129.width; } - if (arg1 + local20 > Static129.anInt3149) { - local20 -= arg1 + local20 - Static129.anInt3149; + if (arg1 + local20 > Static129.clipBottom) { + local20 -= arg1 + local20 - Static129.clipBottom; } - if (arg0 < Static129.anInt3145) { - local36 = Static129.anInt3145 - arg0; + if (arg0 < Static129.clipLeft) { + local36 = Static129.clipLeft - arg0; local23 -= local36; - arg0 = Static129.anInt3145; + arg0 = Static129.clipLeft; local17 += local36; local15 += local36; local29 = local36; local27 += local36; } - if (arg0 + local23 > Static129.anInt3148) { - local36 = arg0 + local23 - Static129.anInt3148; + if (arg0 + local23 > Static129.clipRight) { + local36 = arg0 + local23 - Static129.clipRight; local23 -= local36; local29 += local36; local27 += local36; } if (local23 > 0 && local20 > 0) { - Static290.method300(Static129.anIntArray297, this.anIntArray20, local17, local15, local23, local20, local27, local29); + Static290.method300(Static129.pixels, this.anIntArray20, local17, local15, local23, local20, local27, local29); } } @@ -792,20 +792,20 @@ public class SoftwareSprite extends Sprite { @Pc(39) int local39 = local27 * arg7 >> 8; @Pc(51) int local51 = (arg4 << 16) + local9 * local33 + local4 * local39; @Pc(63) int local63 = (arg5 << 16) + (local9 * local39 - local4 * local33); - @Pc(69) int local69 = arg0 + arg1 * Static129.anInt3144; + @Pc(69) int local69 = arg0 + arg1 * Static129.width; for (@Pc(71) int local71 = 0; local71 < arg3; local71++) { @Pc(78) int local78 = arg8[local71]; @Pc(82) int local82 = local69 + local78; @Pc(88) int local88 = local51 + local39 * local78; @Pc(94) int local94 = local63 - local33 * local78; for (@Pc(99) int local99 = -arg9[local71]; local99 < 0; local99++) { - Static129.anIntArray297[local82++] = this.anIntArray20[(local88 >> 16) + (local94 >> 16) * this.anInt1867]; + Static129.pixels[local82++] = this.anIntArray20[(local88 >> 16) + (local94 >> 16) * this.anInt1867]; local88 += local39; local94 -= local33; } local51 += local33; local63 += local39; - local69 += Static129.anInt3144; + local69 += Static129.width; } } catch (@Pc(144) Exception local144) { } @@ -831,7 +831,7 @@ public class SoftwareSprite extends Sprite { @OriginalMember(owner = "client!mm", name = "a", descriptor = "(II[I[I)V") public final void method312(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int[] arg2, @OriginalArg(3) int[] arg3) { - if (Static129.anInt3149 - Static129.anInt3147 != arg2.length) { + if (Static129.clipBottom - Static129.clipTop != arg2.length) { throw new IllegalStateException(); } arg0 += this.anInt1863; @@ -839,31 +839,31 @@ public class SoftwareSprite extends Sprite { @Pc(21) int local21 = 0; @Pc(24) int local24 = this.anInt1859; @Pc(27) int local27 = this.anInt1867; - @Pc(31) int local31 = Static129.anInt3144 - local27; + @Pc(31) int local31 = Static129.width - local27; @Pc(33) int local33 = 0; - @Pc(39) int local39 = arg0 + arg1 * Static129.anInt3144; + @Pc(39) int local39 = arg0 + arg1 * Static129.width; @Pc(46) int local46; - if (arg1 < Static129.anInt3147) { - local46 = Static129.anInt3147 - arg1; + if (arg1 < Static129.clipTop) { + local46 = Static129.clipTop - arg1; local24 -= local46; - arg1 = Static129.anInt3147; + arg1 = Static129.clipTop; local21 = local46 * local27; - local39 += local46 * Static129.anInt3144; + local39 += local46 * Static129.width; } - if (arg1 + local24 > Static129.anInt3149) { - local24 -= arg1 + local24 - Static129.anInt3149; + if (arg1 + local24 > Static129.clipBottom) { + local24 -= arg1 + local24 - Static129.clipBottom; } - if (arg0 < Static129.anInt3145) { - local46 = Static129.anInt3145 - arg0; + if (arg0 < Static129.clipLeft) { + local46 = Static129.clipLeft - arg0; local27 -= local46; - arg0 = Static129.anInt3145; + arg0 = Static129.clipLeft; local21 += local46; local39 += local46; local33 = local46; local31 += local46; } - if (arg0 + local27 > Static129.anInt3148) { - local46 = arg0 + local27 - Static129.anInt3148; + if (arg0 + local27 > Static129.clipRight) { + local46 = arg0 + local27 - Static129.clipRight; local27 -= local46; local33 += local46; local31 += local46; @@ -871,8 +871,8 @@ public class SoftwareSprite extends Sprite { if (local27 <= 0 || local24 <= 0) { return; } - local46 = arg0 - Static129.anInt3145; - @Pc(142) int local142 = arg1 - Static129.anInt3147; + local46 = arg0 - Static129.clipLeft; + @Pc(142) int local142 = arg1 - Static129.clipTop; for (@Pc(144) int local144 = local142; local144 < local142 + local24; local144++) { @Pc(153) int local153 = arg2[local144]; @Pc(157) int local157 = arg3[local144]; @@ -908,7 +908,7 @@ public class SoftwareSprite extends Sprite { if (local242 == 0) { local39++; } else { - Static129.anIntArray297[local39++] = local242; + Static129.pixels[local39++] = local242; } } local21 += local166 + local33; @@ -927,7 +927,7 @@ public class SoftwareSprite extends Sprite { @Pc(39) int local39 = local27 * 256 >> 8; @Pc(51) int local51 = (arg4 << 16) + local9 * local33 + local4 * local39; @Pc(63) int local63 = (arg5 << 16) + (local9 * local39 - local4 * local33); - @Pc(69) int local69 = arg0 + arg1 * Static129.anInt3144; + @Pc(69) int local69 = arg0 + arg1 * Static129.width; for (@Pc(71) int local71 = 0; local71 < arg3; local71++) { @Pc(78) int local78 = arg7[local71]; @Pc(82) int local82 = local69 + local78; @@ -938,14 +938,14 @@ public class SoftwareSprite extends Sprite { if (local115 == 0) { local82++; } else { - Static129.anIntArray297[local82++] = local115; + Static129.pixels[local82++] = local115; } local88 += local39; local94 -= local33; } local51 += local33; local63 += local39; - local69 += Static129.anInt3144; + local69 += Static129.width; } } catch (@Pc(150) Exception local150) { } @@ -994,31 +994,31 @@ public class SoftwareSprite extends Sprite { if (local10 < local20) { arg3 = ((local10 << 16) + local32 - local14 - 1) / local32; } - local46 = arg0 + arg1 * Static129.anInt3144; - @Pc(130) int local130 = Static129.anInt3144 - arg2; - if (arg1 + arg3 > Static129.anInt3149) { - arg3 -= arg1 + arg3 - Static129.anInt3149; + local46 = arg0 + arg1 * Static129.width; + @Pc(130) int local130 = Static129.width - arg2; + if (arg1 + arg3 > Static129.clipBottom) { + arg3 -= arg1 + arg3 - Static129.clipBottom; } @Pc(150) int local150; - if (arg1 < Static129.anInt3147) { - local150 = Static129.anInt3147 - arg1; + if (arg1 < Static129.clipTop) { + local150 = Static129.clipTop - arg1; arg3 -= local150; - local46 += local150 * Static129.anInt3144; + local46 += local150 * Static129.width; local14 += local32 * local150; } - if (arg0 + arg2 > Static129.anInt3148) { - local150 = arg0 + arg2 - Static129.anInt3148; + if (arg0 + arg2 > Static129.clipRight) { + local150 = arg0 + arg2 - Static129.clipRight; arg2 -= local150; local130 += local150; } - if (arg0 < Static129.anInt3145) { - local150 = Static129.anInt3145 - arg0; + if (arg0 < Static129.clipLeft) { + local150 = Static129.clipLeft - arg0; arg2 -= local150; local46 += local150; local12 += local26 * local150; local130 += local150; } - Static290.method307(Static129.anIntArray297, this.anIntArray20, local12, local14, local46, local130, arg2, arg3, local26, local32, local7, arg4); + Static290.method307(Static129.pixels, this.anIntArray20, local12, local14, local46, local130, arg2, arg3, local26, local32, local7, arg4); } @OriginalMember(owner = "client!mm", name = "b", descriptor = "(III)V") @@ -1083,30 +1083,30 @@ public class SoftwareSprite extends Sprite { if (local10 < local20) { arg3 = ((local10 << 16) + local32 - local14 - 1) / local32; } - local46 = arg0 + arg1 * Static129.anInt3144; - @Pc(130) int local130 = Static129.anInt3144 - arg2; - if (arg1 + arg3 > Static129.anInt3149) { - arg3 -= arg1 + arg3 - Static129.anInt3149; + local46 = arg0 + arg1 * Static129.width; + @Pc(130) int local130 = Static129.width - arg2; + if (arg1 + arg3 > Static129.clipBottom) { + arg3 -= arg1 + arg3 - Static129.clipBottom; } @Pc(150) int local150; - if (arg1 < Static129.anInt3147) { - local150 = Static129.anInt3147 - arg1; + if (arg1 < Static129.clipTop) { + local150 = Static129.clipTop - arg1; arg3 -= local150; - local46 += local150 * Static129.anInt3144; + local46 += local150 * Static129.width; local14 += local32 * local150; } - if (arg0 + arg2 > Static129.anInt3148) { - local150 = arg0 + arg2 - Static129.anInt3148; + if (arg0 + arg2 > Static129.clipRight) { + local150 = arg0 + arg2 - Static129.clipRight; arg2 -= local150; local130 += local150; } - if (arg0 < Static129.anInt3145) { - local150 = Static129.anInt3145 - arg0; + if (arg0 < Static129.clipLeft) { + local150 = Static129.clipLeft - arg0; arg2 -= local150; local46 += local150; local12 += local26 * local150; local130 += local150; } - Static290.method316(Static129.anIntArray297, this.anIntArray20, local12, local14, local46, local130, arg2, arg3, local26, local32, local7); + Static290.method316(Static129.pixels, this.anIntArray20, local12, local14, local46, local130, arg2, arg3, local26, local32, local7); } } diff --git a/client/src/main/java/Static1.java b/client/src/main/java/Static1.java index 88f69c5..310227b 100644 --- a/client/src/main/java/Static1.java +++ b/client/src/main/java/Static1.java @@ -5,7 +5,7 @@ import org.openrs2.deob.annotation.Pc; public final class Static1 { @OriginalMember(owner = "client!a", name = "g", descriptor = "I") - public static int anInt4; + public static int screenLowerY; @OriginalMember(owner = "client!a", name = "h", descriptor = "I") public static int anInt5; @@ -555,7 +555,7 @@ public final class Static1 { Static70.aClass3_Sub2_Sub1_2 = local63; } if (GlRenderer.enabled) { - Static129.anIntArray297 = null; + Static129.pixels = null; } else { Static260.frameBuffer.makeTarget(); } diff --git a/client/src/main/java/Static129.java b/client/src/main/java/Static129.java index 6c07d6c..0d860f6 100644 --- a/client/src/main/java/Static129.java +++ b/client/src/main/java/Static129.java @@ -5,7 +5,7 @@ import org.openrs2.deob.annotation.Pc; public final class Static129 { @OriginalMember(owner = "client!kb", name = "a", descriptor = "I") - public static int anInt3144; + public static int width; @OriginalMember(owner = "client!kb", name = "c", descriptor = "I") public static int anInt3146; @@ -17,19 +17,19 @@ public final class Static129 { public static int[] anIntArray296; @OriginalMember(owner = "client!kb", name = "i", descriptor = "[I") - public static int[] anIntArray297; + public static int[] pixels; @OriginalMember(owner = "client!kb", name = "b", descriptor = "I") - public static int anInt3145 = 0; + public static int clipLeft = 0; @OriginalMember(owner = "client!kb", name = "d", descriptor = "I") - public static int anInt3147 = 0; + public static int clipTop = 0; @OriginalMember(owner = "client!kb", name = "e", descriptor = "I") - public static int anInt3148 = 0; + public static int clipRight = 0; @OriginalMember(owner = "client!kb", name = "h", descriptor = "I") - public static int anInt3149 = 0; + public static int clipBottom = 0; @OriginalMember(owner = "client!kb", name = "a", descriptor = "()V") public static void method2482() { @@ -47,29 +47,29 @@ public final class Static129 { @OriginalMember(owner = "client!kb", name = "a", descriptor = "(IIIIII)V") public static void method2484(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4, @OriginalArg(5) int arg5) { - if (arg0 < anInt3145) { - arg2 -= anInt3145 - arg0; - arg0 = anInt3145; + if (arg0 < clipLeft) { + arg2 -= clipLeft - arg0; + arg0 = clipLeft; } - if (arg1 < anInt3147) { - arg3 -= anInt3147 - arg1; - arg1 = anInt3147; + if (arg1 < clipTop) { + arg3 -= clipTop - arg1; + arg1 = clipTop; } - if (arg0 + arg2 > anInt3148) { - arg2 = anInt3148 - arg0; + if (arg0 + arg2 > clipRight) { + arg2 = clipRight - arg0; } - if (arg1 + arg3 > anInt3149) { - arg3 = anInt3149 - arg1; + if (arg1 + arg3 > clipBottom) { + arg3 = clipBottom - arg1; } @Pc(59) int local59 = ((arg4 & 0xFF00FF) * arg5 >> 8 & 0xFF00FF) + ((arg4 & 0xFF00) * arg5 >> 8 & 0xFF00); @Pc(63) int local63 = 256 - arg5; - @Pc(67) int local67 = anInt3144 - arg2; - @Pc(73) int local73 = arg0 + arg1 * anInt3144; + @Pc(67) int local67 = width - arg2; + @Pc(73) int local73 = arg0 + arg1 * width; for (@Pc(75) int local75 = 0; local75 < arg3; local75++) { for (@Pc(81) int local81 = -arg2; local81 < 0; local81++) { - @Pc(87) int local87 = anIntArray297[local73]; + @Pc(87) int local87 = pixels[local73]; @Pc(107) int local107 = ((local87 & 0xFF00FF) * local63 >> 8 & 0xFF00FF) + ((local87 & 0xFF00) * local63 >> 8 & 0xFF00); - anIntArray297[local73++] = local59 + local107; + pixels[local73++] = local59 + local107; } local73 += local67; } @@ -77,14 +77,14 @@ public final class Static129 { @OriginalMember(owner = "client!kb", name = "a", descriptor = "(III)V") private static void method2485(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) { - if (arg0 >= anInt3145 && arg1 >= anInt3147 && arg0 < anInt3148 && arg1 < anInt3149) { - anIntArray297[arg0 + arg1 * anInt3144] = 16776960; + if (arg0 >= clipLeft && arg1 >= clipTop && arg0 < clipRight && arg1 < clipBottom) { + pixels[arg0 + arg1 * width] = 16776960; } } @OriginalMember(owner = "client!kb", name = "a", descriptor = "([I[I)V") public static void method2486(@OriginalArg(0) int[] arg0, @OriginalArg(1) int[] arg1) { - if (arg0.length != anInt3149 - anInt3147 || arg1.length != anInt3149 - anInt3147) { + if (arg0.length != clipBottom - clipTop || arg1.length != clipBottom - clipTop) { throw new IllegalArgumentException(); } anIntArray295 = arg0; @@ -103,53 +103,53 @@ public final class Static129 { @OriginalMember(owner = "client!kb", name = "a", descriptor = "([I)V") public static void method2488(@OriginalArg(0) int[] arg0) { - anInt3145 = arg0[0]; - anInt3147 = arg0[1]; - anInt3148 = arg0[2]; - anInt3149 = arg0[3]; + clipLeft = arg0[0]; + clipTop = arg0[1]; + clipRight = arg0[2]; + clipBottom = arg0[3]; method2482(); } @OriginalMember(owner = "client!kb", name = "a", descriptor = "(IIII)V") public static void method2489(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3) { - if (arg1 < anInt3147 || arg1 >= anInt3149) { + if (arg1 < clipTop || arg1 >= clipBottom) { return; } - if (arg0 < anInt3145) { - arg2 -= anInt3145 - arg0; - arg0 = anInt3145; + if (arg0 < clipLeft) { + arg2 -= clipLeft - arg0; + arg0 = clipLeft; } - if (arg0 + arg2 > anInt3148) { - arg2 = anInt3148 - arg0; + if (arg0 + arg2 > clipRight) { + arg2 = clipRight - arg0; } - @Pc(32) int local32 = arg0 + arg1 * anInt3144; + @Pc(32) int local32 = arg0 + arg1 * width; for (@Pc(34) int local34 = 0; local34 < arg2; local34++) { - anIntArray297[local32 + local34] = arg3; + pixels[local32 + local34] = arg3; } } @OriginalMember(owner = "client!kb", name = "b", descriptor = "(IIII)V") public static void method2490(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3) { - if (arg0 < anInt3145 || arg0 >= anInt3148) { + if (arg0 < clipLeft || arg0 >= clipRight) { return; } - if (arg1 < anInt3147) { - arg2 -= anInt3147 - arg1; - arg1 = anInt3147; + if (arg1 < clipTop) { + arg2 -= clipTop - arg1; + arg1 = clipTop; } - if (arg1 + arg2 > anInt3149) { - arg2 = anInt3149 - arg1; + if (arg1 + arg2 > clipBottom) { + arg2 = clipBottom - arg1; } - @Pc(32) int local32 = arg0 + arg1 * anInt3144; + @Pc(32) int local32 = arg0 + arg1 * width; for (@Pc(34) int local34 = 0; local34 < arg2; local34++) { - anIntArray297[local32 + local34 * anInt3144] = arg3; + pixels[local32 + local34 * width] = arg3; } } @OriginalMember(owner = "client!kb", name = "a", descriptor = "([III)V") public static void method2491(@OriginalArg(0) int[] arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2) { - anIntArray297 = arg0; - anInt3144 = arg1; + pixels = arg0; + width = arg1; anInt3146 = arg2; method2496(0, 0, arg1, arg2); } @@ -157,46 +157,46 @@ public final class Static129 { @OriginalMember(owner = "client!kb", name = "b", descriptor = "()V") public static void method2492() { @Pc(1) int local1 = 0; - @Pc(7) int local7 = anInt3144 * anInt3146 - 7; + @Pc(7) int local7 = width * anInt3146 - 7; while (local1 < local7) { - anIntArray297[local1++] = 0; - anIntArray297[local1++] = 0; - anIntArray297[local1++] = 0; - anIntArray297[local1++] = 0; - anIntArray297[local1++] = 0; - anIntArray297[local1++] = 0; - anIntArray297[local1++] = 0; - anIntArray297[local1++] = 0; + pixels[local1++] = 0; + pixels[local1++] = 0; + pixels[local1++] = 0; + pixels[local1++] = 0; + pixels[local1++] = 0; + pixels[local1++] = 0; + pixels[local1++] = 0; + pixels[local1++] = 0; } local7 += 7; while (local1 < local7) { - anIntArray297[local1++] = 0; + pixels[local1++] = 0; } } @OriginalMember(owner = "client!kb", name = "b", descriptor = "(IIIII)V") private static void method2493(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4) { - if (arg1 < anInt3147 || arg1 >= anInt3149) { + if (arg1 < clipTop || arg1 >= clipBottom) { return; } - if (arg0 < anInt3145) { - arg2 -= anInt3145 - arg0; - arg0 = anInt3145; + if (arg0 < clipLeft) { + arg2 -= clipLeft - arg0; + arg0 = clipLeft; } - if (arg0 + arg2 > anInt3148) { - arg2 = anInt3148 - arg0; + if (arg0 + arg2 > clipRight) { + arg2 = clipRight - arg0; } @Pc(30) int local30 = 256 - arg4; @Pc(38) int local38 = (arg3 >> 16 & 0xFF) * arg4; @Pc(46) int local46 = (arg3 >> 8 & 0xFF) * arg4; @Pc(52) int local52 = (arg3 & 0xFF) * arg4; - @Pc(58) int local58 = arg0 + arg1 * anInt3144; + @Pc(58) int local58 = arg0 + arg1 * width; for (@Pc(60) int local60 = 0; local60 < arg2; local60++) { - @Pc(73) int local73 = (anIntArray297[local58] >> 16 & 0xFF) * local30; - @Pc(83) int local83 = (anIntArray297[local58] >> 8 & 0xFF) * local30; - @Pc(91) int local91 = (anIntArray297[local58] & 0xFF) * local30; + @Pc(73) int local73 = (pixels[local58] >> 16 & 0xFF) * local30; + @Pc(83) int local83 = (pixels[local58] >> 8 & 0xFF) * local30; + @Pc(91) int local91 = (pixels[local58] & 0xFF) * local30; @Pc(113) int local113 = (local38 + local73 >> 8 << 16) + (local46 + local83 >> 8 << 8) + (local52 + local91 >> 8); - anIntArray297[local58++] = local113; + pixels[local58++] = local113; } } @@ -224,8 +224,8 @@ public final class Static129 { @Pc(67) int local67 = arg5 * local43 + 1 >> 17; @Pc(73) int local73 = arg5 * local37 >> 17; @Pc(81) int local81 = arg5 * local37 + 1 >> 17; - @Pc(85) int local85 = arg0 - Rasteriser.method1913(); - @Pc(89) int local89 = arg1 - Rasteriser.method1927(); + @Pc(85) int local85 = arg0 - Rasteriser.getOffsetRemainder(); + @Pc(89) int local89 = arg1 - Rasteriser.getOffset(); @Pc(93) int local93 = local85 + local59; @Pc(97) int local97 = local85 - local67; @Pc(103) int local103 = local85 + local3 - local67; @@ -234,33 +234,33 @@ public final class Static129 { @Pc(117) int local117 = local89 - local81; @Pc(123) int local123 = local89 + local7 - local81; @Pc(129) int local129 = local89 + local7 + local73; - Rasteriser.method1922(local93, local97, local103); - Rasteriser.method1918(local113, local117, local123, local93, local97, local103, arg4); - Rasteriser.method1922(local93, local103, local109); - Rasteriser.method1918(local113, local123, local129, local93, local103, local109, arg4); + Rasteriser.testPoints(local93, local97, local103); + Rasteriser.fillTriangle(local113, local117, local123, local93, local97, local103, arg4); + Rasteriser.testPoints(local93, local103, local109); + Rasteriser.fillTriangle(local113, local123, local129, local93, local103, local109, arg4); } @OriginalMember(owner = "client!kb", name = "c", descriptor = "(IIIII)V") public static void method2495(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4) { - if (arg0 < anInt3145) { - arg2 -= anInt3145 - arg0; - arg0 = anInt3145; + if (arg0 < clipLeft) { + arg2 -= clipLeft - arg0; + arg0 = clipLeft; } - if (arg1 < anInt3147) { - arg3 -= anInt3147 - arg1; - arg1 = anInt3147; + if (arg1 < clipTop) { + arg3 -= clipTop - arg1; + arg1 = clipTop; } - if (arg0 + arg2 > anInt3148) { - arg2 = anInt3148 - arg0; + if (arg0 + arg2 > clipRight) { + arg2 = clipRight - arg0; } - if (arg1 + arg3 > anInt3149) { - arg3 = anInt3149 - arg1; + if (arg1 + arg3 > clipBottom) { + arg3 = clipBottom - arg1; } - @Pc(43) int local43 = anInt3144 - arg2; - @Pc(49) int local49 = arg0 + arg1 * anInt3144; + @Pc(43) int local43 = width - arg2; + @Pc(49) int local49 = arg0 + arg1 * width; for (@Pc(52) int local52 = -arg3; local52 < 0; local52++) { for (@Pc(57) int local57 = -arg2; local57 < 0; local57++) { - anIntArray297[local49++] = arg4; + pixels[local49++] = arg4; } local49 += local43; } @@ -274,68 +274,68 @@ public final class Static129 { if (arg1 < 0) { arg1 = 0; } - if (arg2 > anInt3144) { - arg2 = anInt3144; + if (arg2 > width) { + arg2 = width; } if (arg3 > anInt3146) { arg3 = anInt3146; } - anInt3145 = arg0; - anInt3147 = arg1; - anInt3148 = arg2; - anInt3149 = arg3; + clipLeft = arg0; + clipTop = arg1; + clipRight = arg2; + clipBottom = arg3; method2482(); } @OriginalMember(owner = "client!kb", name = "b", descriptor = "([I)V") public static void method2497(@OriginalArg(0) int[] arg0) { - arg0[0] = anInt3145; - arg0[1] = anInt3147; - arg0[2] = anInt3148; - arg0[3] = anInt3149; + arg0[0] = clipLeft; + arg0[1] = clipTop; + arg0[2] = clipRight; + arg0[3] = clipBottom; } @OriginalMember(owner = "client!kb", name = "d", descriptor = "(IIII)V") public static void method2498(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3) { - if (anInt3145 < arg0) { - anInt3145 = arg0; + if (clipLeft < arg0) { + clipLeft = arg0; } - if (anInt3147 < arg1) { - anInt3147 = arg1; + if (clipTop < arg1) { + clipTop = arg1; } - if (anInt3148 > arg2) { - anInt3148 = arg2; + if (clipRight > arg2) { + clipRight = arg2; } - if (anInt3149 > arg3) { - anInt3149 = arg3; + if (clipBottom > arg3) { + clipBottom = arg3; } method2482(); } @OriginalMember(owner = "client!kb", name = "d", descriptor = "(IIIII)V") private static void method2499(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4) { - if (arg0 < anInt3145 || arg0 >= anInt3148) { + if (arg0 < clipLeft || arg0 >= clipRight) { return; } - if (arg1 < anInt3147) { - arg2 -= anInt3147 - arg1; - arg1 = anInt3147; + if (arg1 < clipTop) { + arg2 -= clipTop - arg1; + arg1 = clipTop; } - if (arg1 + arg2 > anInt3149) { - arg2 = anInt3149 - arg1; + if (arg1 + arg2 > clipBottom) { + arg2 = clipBottom - arg1; } @Pc(30) int local30 = 256 - arg4; @Pc(38) int local38 = (arg3 >> 16 & 0xFF) * arg4; @Pc(46) int local46 = (arg3 >> 8 & 0xFF) * arg4; @Pc(52) int local52 = (arg3 & 0xFF) * arg4; - @Pc(58) int local58 = arg0 + arg1 * anInt3144; + @Pc(58) int local58 = arg0 + arg1 * width; for (@Pc(60) int local60 = 0; local60 < arg2; local60++) { - @Pc(73) int local73 = (anIntArray297[local58] >> 16 & 0xFF) * local30; - @Pc(83) int local83 = (anIntArray297[local58] >> 8 & 0xFF) * local30; - @Pc(91) int local91 = (anIntArray297[local58] & 0xFF) * local30; + @Pc(73) int local73 = (pixels[local58] >> 16 & 0xFF) * local30; + @Pc(83) int local83 = (pixels[local58] >> 8 & 0xFF) * local30; + @Pc(91) int local91 = (pixels[local58] & 0xFF) * local30; @Pc(113) int local113 = (local38 + local73 >> 8 << 16) + (local46 + local83 >> 8 << 8) + (local52 + local91 >> 8); - anIntArray297[local58] = local113; - local58 += anInt3144; + pixels[local58] = local113; + local58 += width; } } @@ -364,17 +364,17 @@ public final class Static129 { @Pc(86) int local86 = arg3 << 16; local96 = (int) Math.floor((double) local86 / (double) arg2 + 0.5D); arg2 += arg0; - if (arg0 < anInt3145) { - arg1 += local96 * (anInt3145 - arg0); - arg0 = anInt3145; + if (arg0 < clipLeft) { + arg1 += local96 * (clipLeft - arg0); + arg0 = clipLeft; } - if (arg2 >= anInt3148) { - arg2 = anInt3148 - 1; + if (arg2 >= clipRight) { + arg2 = clipRight - 1; } while (arg0 <= arg2) { local127 = arg1 >> 16; - if (local127 >= anInt3147 && local127 < anInt3149) { - anIntArray297[arg0 + local127 * anInt3144] = arg4; + if (local127 >= clipTop && local127 < clipBottom) { + pixels[arg0 + local127 * width] = arg4; } arg1 += local96; arg0++; @@ -385,17 +385,17 @@ public final class Static129 { @Pc(160) int local160 = arg2 << 16; local96 = (int) Math.floor((double) local160 / (double) arg3 + 0.5D); arg3 += arg1; - if (arg1 < anInt3147) { - arg0 += local96 * (anInt3147 - arg1); - arg1 = anInt3147; + if (arg1 < clipTop) { + arg0 += local96 * (clipTop - arg1); + arg1 = clipTop; } - if (arg3 >= anInt3149) { - arg3 = anInt3149 - 1; + if (arg3 >= clipBottom) { + arg3 = clipBottom - 1; } while (arg1 <= arg3) { local127 = arg0 >> 16; - if (local127 >= anInt3145 && local127 < anInt3148) { - anIntArray297[local127 + arg1 * anInt3144] = arg4; + if (local127 >= clipLeft && local127 < clipRight) { + pixels[local127 + arg1 * width] = arg4; } arg0 += local96; arg1++; @@ -418,12 +418,12 @@ public final class Static129 { arg2 = -arg2; } @Pc(15) int local15 = arg1 - arg2; - if (local15 < anInt3147) { - local15 = anInt3147; + if (local15 < clipTop) { + local15 = clipTop; } @Pc(26) int local26 = arg1 + arg2 + 1; - if (local26 > anInt3149) { - local26 = anInt3149; + if (local26 > clipBottom) { + local26 = clipBottom; } @Pc(33) int local33 = local15; @Pc(37) int local37 = arg2 * arg2; @@ -444,16 +444,16 @@ public final class Static129 { local51 += local39++ + local39; } local85 = arg0 + 1 - local39; - if (local85 < anInt3145) { - local85 = anInt3145; + if (local85 < clipLeft) { + local85 = clipLeft; } local94 = arg0 + local39; - if (local94 > anInt3148) { - local94 = anInt3148; + if (local94 > clipRight) { + local94 = clipRight; } - local105 = local85 + local33 * anInt3144; + local105 = local85 + local33 * width; for (local107 = local85; local107 < local94; local107++) { - anIntArray297[local105++] = 16776960; + pixels[local105++] = 16776960; } local33++; local47 -= local43-- + local43; @@ -470,16 +470,16 @@ public final class Static129 { local47 -= local39 + local39; } local85 = arg0 - local39; - if (local85 < anInt3145) { - local85 = anInt3145; + if (local85 < clipLeft) { + local85 = clipLeft; } local94 = arg0 + local39; - if (local94 > anInt3148 - 1) { - local94 = anInt3148 - 1; + if (local94 > clipRight - 1) { + local94 = clipRight - 1; } - local105 = local85 + local33 * anInt3144; + local105 = local85 + local33 * width; for (local107 = local85; local107 <= local94; local107++) { - anIntArray297[local105++] = 16776960; + pixels[local105++] = 16776960; } local33++; local51 += local43 + local43; @@ -501,12 +501,12 @@ public final class Static129 { @Pc(36) int local36 = arg3 * 255; @Pc(42) int local42 = arg3 * 0; @Pc(46) int local46 = arg1 - arg2; - if (local46 < anInt3147) { - local46 = anInt3147; + if (local46 < clipTop) { + local46 = clipTop; } @Pc(57) int local57 = arg1 + arg2 + 1; - if (local57 > anInt3149) { - local57 = anInt3149; + if (local57 > clipBottom) { + local57 = clipBottom; } @Pc(64) int local64 = local46; @Pc(68) int local68 = arg2 * arg2; @@ -531,20 +531,20 @@ public final class Static129 { local82 += local70++ + local70; } local116 = arg0 + 1 - local70; - if (local116 < anInt3145) { - local116 = anInt3145; + if (local116 < clipLeft) { + local116 = clipLeft; } local125 = arg0 + local70; - if (local125 > anInt3148) { - local125 = anInt3148; + if (local125 > clipRight) { + local125 = clipRight; } - local136 = local116 + local64 * anInt3144; + local136 = local116 + local64 * width; for (local138 = local116; local138 < local125; local138++) { - local151 = (anIntArray297[local136] >> 16 & 0xFF) * local20; - local161 = (anIntArray297[local136] >> 8 & 0xFF) * local20; - local169 = (anIntArray297[local136] & 0xFF) * local20; + local151 = (pixels[local136] >> 16 & 0xFF) * local20; + local161 = (pixels[local136] >> 8 & 0xFF) * local20; + local169 = (pixels[local136] & 0xFF) * local20; local191 = (local28 + local151 >> 8 << 16) + (local36 + local161 >> 8 << 8) + (local42 + local169 >> 8); - anIntArray297[local136++] = local191; + pixels[local136++] = local191; } local64++; local78 -= local74-- + local74; @@ -561,20 +561,20 @@ public final class Static129 { local78 -= local70 + local70; } local116 = arg0 - local70; - if (local116 < anInt3145) { - local116 = anInt3145; + if (local116 < clipLeft) { + local116 = clipLeft; } local125 = arg0 + local70; - if (local125 > anInt3148 - 1) { - local125 = anInt3148 - 1; + if (local125 > clipRight - 1) { + local125 = clipRight - 1; } - local136 = local116 + local64 * anInt3144; + local136 = local116 + local64 * width; for (local138 = local116; local138 <= local125; local138++) { - local151 = (anIntArray297[local136] >> 16 & 0xFF) * local20; - local161 = (anIntArray297[local136] >> 8 & 0xFF) * local20; - local169 = (anIntArray297[local136] & 0xFF) * local20; + local151 = (pixels[local136] >> 16 & 0xFF) * local20; + local161 = (pixels[local136] >> 8 & 0xFF) * local20; + local169 = (pixels[local136] & 0xFF) * local20; local191 = (local28 + local151 >> 8 << 16) + (local36 + local161 >> 8 << 8) + (local42 + local169 >> 8); - anIntArray297[local136++] = local191; + pixels[local136++] = local191; } local64++; local82 += local74 + local74; @@ -584,22 +584,22 @@ public final class Static129 { @OriginalMember(owner = "client!kb", name = "c", descriptor = "()V") public static void method2503() { - anInt3145 = 0; - anInt3147 = 0; - anInt3148 = anInt3144; - anInt3149 = anInt3146; + clipLeft = 0; + clipTop = 0; + clipRight = width; + clipBottom = anInt3146; method2482(); } @OriginalMember(owner = "client!kb", name = "a", descriptor = "(III[I[I)V") public static void method2504(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(3) int[] arg2, @OriginalArg(4) int[] arg3) { - @Pc(5) int local5 = arg0 + arg1 * anInt3144; + @Pc(5) int local5 = arg0 + arg1 * width; for (@Pc(7) int local7 = 0; local7 < arg2.length; local7++) { @Pc(17) int local17 = local5 + arg2[local7]; for (@Pc(22) int local22 = -arg3[local7]; local22 < 0; local22++) { - anIntArray297[local17++] = 0; + pixels[local17++] = 0; } - local5 += anInt3144; + local5 += width; } } } diff --git a/client/src/main/java/Static132.java b/client/src/main/java/Static132.java index 30647d0..ccf9f59 100644 --- a/client/src/main/java/Static132.java +++ b/client/src/main/java/Static132.java @@ -136,63 +136,63 @@ public final class Static132 { if (local261 < 50) { return; } - @Pc(275) int local275 = Rasteriser.anInt2471 + (local97 << 9) / local117; - @Pc(283) int local283 = Rasteriser.anInt2469 + (local119 << 9) / local117; - @Pc(291) int local291 = Rasteriser.anInt2471 + (local21 << 9) / local165; - @Pc(299) int local299 = Rasteriser.anInt2469 + (local49 << 9) / local165; - @Pc(307) int local307 = Rasteriser.anInt2471 + (local193 << 9) / local27; - @Pc(315) int local315 = Rasteriser.anInt2469 + (local63 << 9) / local27; - @Pc(323) int local323 = Rasteriser.anInt2471 + (local241 << 9) / local261; - @Pc(331) int local331 = Rasteriser.anInt2469 + (local85 << 9) / local261; - Rasteriser.anInt2473 = 0; + @Pc(275) int local275 = Rasteriser.centerX + (local97 << 9) / local117; + @Pc(283) int local283 = Rasteriser.centerY + (local119 << 9) / local117; + @Pc(291) int local291 = Rasteriser.centerX + (local21 << 9) / local165; + @Pc(299) int local299 = Rasteriser.centerY + (local49 << 9) / local165; + @Pc(307) int local307 = Rasteriser.centerX + (local193 << 9) / local27; + @Pc(315) int local315 = Rasteriser.centerY + (local63 << 9) / local27; + @Pc(323) int local323 = Rasteriser.centerX + (local241 << 9) / local261; + @Pc(331) int local331 = Rasteriser.centerY + (local85 << 9) / local261; + Rasteriser.alpha = 0; @Pc(475) int local475; if ((local307 - local323) * (local299 - local331) - (local315 - local331) * (local291 - local323) > 0) { - if (Static158.aBoolean187 && Static19.method583(Static89.anInt2388 + Rasteriser.anInt2471, Static131.anInt3259 + Rasteriser.anInt2469, local315, local331, local299, local307, local323, local291)) { + if (Static158.aBoolean187 && Static19.method583(Static89.anInt2388 + Rasteriser.centerX, Static131.anInt3259 + Rasteriser.centerY, local315, local331, local299, local307, local323, local291)) { Static56.anInt1742 = arg6; Static116.anInt2954 = arg7; } if (!GlRenderer.enabled && !arg8) { - Rasteriser.aBoolean138 = false; - if (local307 < 0 || local323 < 0 || local291 < 0 || local307 > Rasteriser.anInt2472 || local323 > Rasteriser.anInt2472 || local291 > Rasteriser.anInt2472) { - Rasteriser.aBoolean138 = true; + Rasteriser.testX = false; + if (local307 < 0 || local323 < 0 || local291 < 0 || local307 > Rasteriser.width || local323 > Rasteriser.width || local291 > Rasteriser.width) { + Rasteriser.testX = true; } if (arg0.anInt4869 == -1) { if (arg0.anInt4865 != 12345678) { - Rasteriser.method1928(local315, local331, local299, local307, local323, local291, arg0.anInt4865, arg0.anInt4864, arg0.anInt4867); + Rasteriser.fillGouraudTriangle(local315, local331, local299, local307, local323, local291, arg0.anInt4865, arg0.anInt4864, arg0.anInt4867); } } else if (!Static159.aBoolean189) { - local475 = Rasteriser.anInterface1_2.method3234(arg0.anInt4869); - Rasteriser.method1928(local315, local331, local299, local307, local323, local291, Static216.method1640(local475, arg0.anInt4865), Static216.method1640(local475, arg0.anInt4864), Static216.method1640(local475, arg0.anInt4867)); + local475 = Rasteriser.textureProvider.getAverageColor(arg0.anInt4869); + Rasteriser.fillGouraudTriangle(local315, local331, local299, local307, local323, local291, Static216.method1640(local475, arg0.anInt4865), Static216.method1640(local475, arg0.anInt4864), Static216.method1640(local475, arg0.anInt4867)); } else if (arg0.aBoolean241) { - Rasteriser.method1909(local315, local331, local299, local307, local323, local291, arg0.anInt4865, arg0.anInt4864, arg0.anInt4867, local97, local21, local241, local119, local49, local85, local117, local165, local261, arg0.anInt4869); + Rasteriser.fillTexturedTriangle(local315, local331, local299, local307, local323, local291, arg0.anInt4865, arg0.anInt4864, arg0.anInt4867, local97, local21, local241, local119, local49, local85, local117, local165, local261, arg0.anInt4869); } else { - Rasteriser.method1909(local315, local331, local299, local307, local323, local291, arg0.anInt4865, arg0.anInt4864, arg0.anInt4867, local193, local241, local21, local63, local85, local49, local27, local261, local165, arg0.anInt4869); + Rasteriser.fillTexturedTriangle(local315, local331, local299, local307, local323, local291, arg0.anInt4865, arg0.anInt4864, arg0.anInt4867, local193, local241, local21, local63, local85, local49, local27, local261, local165, arg0.anInt4869); } } } if ((local275 - local291) * (local331 - local299) - (local283 - local299) * (local323 - local291) <= 0) { return; } - if (Static158.aBoolean187 && Static19.method583(Static89.anInt2388 + Rasteriser.anInt2471, Static131.anInt3259 + Rasteriser.anInt2469, local283, local299, local331, local275, local291, local323)) { + if (Static158.aBoolean187 && Static19.method583(Static89.anInt2388 + Rasteriser.centerX, Static131.anInt3259 + Rasteriser.centerY, local283, local299, local331, local275, local291, local323)) { Static56.anInt1742 = arg6; Static116.anInt2954 = arg7; } if (GlRenderer.enabled || arg8) { return; } - Rasteriser.aBoolean138 = false; - if (local275 < 0 || local291 < 0 || local323 < 0 || local275 > Rasteriser.anInt2472 || local291 > Rasteriser.anInt2472 || local323 > Rasteriser.anInt2472) { - Rasteriser.aBoolean138 = true; + Rasteriser.testX = false; + if (local275 < 0 || local291 < 0 || local323 < 0 || local275 > Rasteriser.width || local291 > Rasteriser.width || local323 > Rasteriser.width) { + Rasteriser.testX = true; } if (arg0.anInt4869 == -1) { if (arg0.anInt4872 != 12345678) { - Rasteriser.method1928(local283, local299, local331, local275, local291, local323, arg0.anInt4872, arg0.anInt4867, arg0.anInt4864); + Rasteriser.fillGouraudTriangle(local283, local299, local331, local275, local291, local323, arg0.anInt4872, arg0.anInt4867, arg0.anInt4864); } } else if (Static159.aBoolean189) { - Rasteriser.method1909(local283, local299, local331, local275, local291, local323, arg0.anInt4872, arg0.anInt4867, arg0.anInt4864, local97, local21, local241, local119, local49, local85, local117, local165, local261, arg0.anInt4869); + Rasteriser.fillTexturedTriangle(local283, local299, local331, local275, local291, local323, arg0.anInt4872, arg0.anInt4867, arg0.anInt4864, local97, local21, local241, local119, local49, local85, local117, local165, local261, arg0.anInt4869); } else { - local475 = Rasteriser.anInterface1_2.method3234(arg0.anInt4869); - Rasteriser.method1928(local283, local299, local331, local275, local291, local323, Static216.method1640(local475, arg0.anInt4872), Static216.method1640(local475, arg0.anInt4867), Static216.method1640(local475, arg0.anInt4864)); + local475 = Rasteriser.textureProvider.getAverageColor(arg0.anInt4869); + Rasteriser.fillGouraudTriangle(local283, local299, local331, local275, local291, local323, Static216.method1640(local475, arg0.anInt4872), Static216.method1640(local475, arg0.anInt4867), Static216.method1640(local475, arg0.anInt4864)); } } } diff --git a/client/src/main/java/Static137.java b/client/src/main/java/Static137.java index c8a3f77..47babae 100644 --- a/client/src/main/java/Static137.java +++ b/client/src/main/java/Static137.java @@ -103,7 +103,7 @@ public final class Static137 { for (local76 = 1; local76 < 103; local76++) { if ((Static12.aByteArrayArrayArray2[arg0][local76][local37] & 0x18) == 0 && !Static164.method3109(local76, local455, local37, local35, arg0)) { if (GlRenderer.enabled) { - Static129.anIntArray297 = null; + Static129.pixels = null; } else { Static260.frameBuffer.makeTarget(); } @@ -111,7 +111,7 @@ public final class Static137 { } if (arg0 < 3 && (Static12.aByteArrayArrayArray2[arg0 + 1][local76][local37] & 0x8) != 0 && !Static164.method3109(local76, local455, local37, local35, arg0 + 1)) { if (GlRenderer.enabled) { - Static129.anIntArray297 = null; + Static129.pixels = null; } else { Static260.frameBuffer.makeTarget(); } @@ -132,7 +132,7 @@ public final class Static137 { Static89.aClass3_Sub2_Sub1_5 = Static56.aClass3_Sub2_Sub1_Sub1_1; } if (GlRenderer.enabled) { - Static129.anIntArray297 = null; + Static129.pixels = null; } else { Static260.frameBuffer.makeTarget(); } diff --git a/client/src/main/java/Static141.java b/client/src/main/java/Static141.java index c8896d4..90d2619 100644 --- a/client/src/main/java/Static141.java +++ b/client/src/main/java/Static141.java @@ -38,7 +38,7 @@ public final class Static141 { Static217.method3768(); Static255.aClass54_16.method1815(); Static171.aClass139_1 = new Class139(); - ((Js5GlTextureProvider) Rasteriser.anInterface1_2).method3247(); + ((Js5GlTextureProvider) Rasteriser.textureProvider).method3247(); Static120.anInt3034 = 0; Static120.aClass51Array1 = new Light[255]; Static237.method4120(); diff --git a/client/src/main/java/Static144.java b/client/src/main/java/Static144.java index 2c46fd3..3d93b5e 100644 --- a/client/src/main/java/Static144.java +++ b/client/src/main/java/Static144.java @@ -104,7 +104,7 @@ public final class Static144 { if (local437 == 0 || local62 <= 1 || local238 <= 1) { Static129.method2495(local47, local222, local62, local238, local372); } else { - Static280.method4667(Static129.anIntArray297, local372, local47, local433 & 0x3, local312, local437 >> 2, local238, local62, local222, true); + Static280.method4667(Static129.pixels, local372, local47, local433 & 0x3, local312, local437 >> 2, local238, local62, local222, true); } } if (local395 != 0) { @@ -116,7 +116,7 @@ public final class Static144 { if (local437 == 0 || local62 <= 1 || local238 <= 1) { Static129.method2495(local47, local222, local62, local238, local395); } - Static280.method4667(Static129.anIntArray297, local395, local47, local433 & 0x3, 0, local437 >> 2, local238, local62, local222, local372 == 0); + Static280.method4667(Static129.pixels, local395, local47, local433 & 0x3, 0, local437 >> 2, local238, local62, local222, local372 == 0); } } if (local197[local254] != null) { diff --git a/client/src/main/java/Static147.java b/client/src/main/java/Static147.java index fcc632b..15976e0 100644 --- a/client/src/main/java/Static147.java +++ b/client/src/main/java/Static147.java @@ -44,10 +44,10 @@ public final class Static147 { Static68.anIntArray170[local5] = local61; Static68.anIntArray169[local5] = local71; } - Static68.anIntArray165[local5] = Rasteriser.anInt2471 + (local39 << 9) / local71; - Static68.anIntArray164[local5] = Rasteriser.anInt2469 + (local61 << 9) / local71; + Static68.anIntArray165[local5] = Rasteriser.centerX + (local39 << 9) / local71; + Static68.anIntArray164[local5] = Rasteriser.centerY + (local61 << 9) / local71; } - Rasteriser.anInt2473 = 0; + Rasteriser.alpha = 0; local3 = arg0.anIntArray166.length; for (local5 = 0; local5 < local3; local5++) { local15 = arg0.anIntArray166[local5]; @@ -60,26 +60,26 @@ public final class Static147 { @Pc(160) int local160 = Static68.anIntArray164[local22]; @Pc(164) int local164 = Static68.anIntArray164[local29]; if ((local39 - local148) * (local164 - local160) - (local156 - local160) * (local152 - local148) > 0) { - if (Static158.aBoolean187 && Static19.method583(Static89.anInt2388 + Rasteriser.anInt2471, Static131.anInt3259 + Rasteriser.anInt2469, local156, local160, local164, local39, local148, local152)) { + if (Static158.aBoolean187 && Static19.method583(Static89.anInt2388 + Rasteriser.centerX, Static131.anInt3259 + Rasteriser.centerY, local156, local160, local164, local39, local148, local152)) { Static56.anInt1742 = arg5; Static116.anInt2954 = arg6; } if (!GlRenderer.enabled && !arg7) { - Rasteriser.aBoolean138 = false; - if (local39 < 0 || local148 < 0 || local152 < 0 || local39 > Rasteriser.anInt2472 || local148 > Rasteriser.anInt2472 || local152 > Rasteriser.anInt2472) { - Rasteriser.aBoolean138 = true; + Rasteriser.testX = false; + if (local39 < 0 || local148 < 0 || local152 < 0 || local39 > Rasteriser.width || local148 > Rasteriser.width || local152 > Rasteriser.width) { + Rasteriser.testX = true; } if (arg0.anIntArray161 == null || arg0.anIntArray161[local5] == -1) { if (arg0.anIntArray167[local5] != 12345678) { - Rasteriser.method1928(local156, local160, local164, local39, local148, local152, arg0.anIntArray167[local5], arg0.anIntArray172[local5], arg0.anIntArray171[local5]); + Rasteriser.fillGouraudTriangle(local156, local160, local164, local39, local148, local152, arg0.anIntArray167[local5], arg0.anIntArray172[local5], arg0.anIntArray171[local5]); } } else if (!Static159.aBoolean189) { - @Pc(373) int local373 = Rasteriser.anInterface1_2.method3234(arg0.anIntArray161[local5]); - Rasteriser.method1928(local156, local160, local164, local39, local148, local152, Static216.method1640(local373, arg0.anIntArray167[local5]), Static216.method1640(local373, arg0.anIntArray172[local5]), Static216.method1640(local373, arg0.anIntArray171[local5])); + @Pc(373) int local373 = Rasteriser.textureProvider.getAverageColor(arg0.anIntArray161[local5]); + Rasteriser.fillGouraudTriangle(local156, local160, local164, local39, local148, local152, Static216.method1640(local373, arg0.anIntArray167[local5]), Static216.method1640(local373, arg0.anIntArray172[local5]), Static216.method1640(local373, arg0.anIntArray171[local5])); } else if (arg0.aBoolean113) { - Rasteriser.method1909(local156, local160, local164, local39, local148, local152, arg0.anIntArray167[local5], arg0.anIntArray172[local5], arg0.anIntArray171[local5], Static68.anIntArray159[0], Static68.anIntArray159[1], Static68.anIntArray159[3], Static68.anIntArray170[0], Static68.anIntArray170[1], Static68.anIntArray170[3], Static68.anIntArray169[0], Static68.anIntArray169[1], Static68.anIntArray169[3], arg0.anIntArray161[local5]); + Rasteriser.fillTexturedTriangle(local156, local160, local164, local39, local148, local152, arg0.anIntArray167[local5], arg0.anIntArray172[local5], arg0.anIntArray171[local5], Static68.anIntArray159[0], Static68.anIntArray159[1], Static68.anIntArray159[3], Static68.anIntArray170[0], Static68.anIntArray170[1], Static68.anIntArray170[3], Static68.anIntArray169[0], Static68.anIntArray169[1], Static68.anIntArray169[3], arg0.anIntArray161[local5]); } else { - Rasteriser.method1909(local156, local160, local164, local39, local148, local152, arg0.anIntArray167[local5], arg0.anIntArray172[local5], arg0.anIntArray171[local5], Static68.anIntArray159[local15], Static68.anIntArray159[local22], Static68.anIntArray159[local29], Static68.anIntArray170[local15], Static68.anIntArray170[local22], Static68.anIntArray170[local29], Static68.anIntArray169[local15], Static68.anIntArray169[local22], Static68.anIntArray169[local29], arg0.anIntArray161[local5]); + Rasteriser.fillTexturedTriangle(local156, local160, local164, local39, local148, local152, arg0.anIntArray167[local5], arg0.anIntArray172[local5], arg0.anIntArray171[local5], Static68.anIntArray159[local15], Static68.anIntArray159[local22], Static68.anIntArray159[local29], Static68.anIntArray170[local15], Static68.anIntArray170[local22], Static68.anIntArray170[local29], Static68.anIntArray169[local15], Static68.anIntArray169[local22], Static68.anIntArray169[local29], arg0.anIntArray161[local5]); } } } diff --git a/client/src/main/java/Static148.java b/client/src/main/java/Static148.java index 016d3eb..a0d0a0c 100644 --- a/client/src/main/java/Static148.java +++ b/client/src/main/java/Static148.java @@ -17,7 +17,7 @@ public final class Static148 { public static HashTable aClass133_13; @OriginalMember(owner = "client!li", name = "x", descriptor = "I") - public static int anInt3535; + public static int screenUpperY; @OriginalMember(owner = "client!li", name = "h", descriptor = "[Lclient!mj;") public static final CollisionMap[] aClass97Array1 = new CollisionMap[4]; diff --git a/client/src/main/java/Static156.java b/client/src/main/java/Static156.java index 3123ec4..fbd2a34 100644 --- a/client/src/main/java/Static156.java +++ b/client/src/main/java/Static156.java @@ -162,7 +162,7 @@ public final class Static156 { GlRenderer.disableDepthMask(); for (@Pc(19) int local19 = 0; local19 < Static36.aClass3_Sub14ArrayArray1[0].length; local19++) { @Pc(31) Class3_Sub14 local31 = Static36.aClass3_Sub14ArrayArray1[0][local19]; - if (local31.anInt2485 >= 0 && Rasteriser.anInterface1_2.method3237(local31.anInt2485) == 4) { + if (local31.anInt2485 >= 0 && Rasteriser.textureProvider.method3237(local31.anInt2485) == 4) { local1.glColor4fv(Static190.method3441(local31.anInt2486), 0); @Pc(57) float local57 = 201.5F - (local31.aBoolean140 ? 1.0F : 0.5F); local31.method1944(Static130.aClass3_Sub5ArrayArrayArray1, local57, true); diff --git a/client/src/main/java/Static160.java b/client/src/main/java/Static160.java index 7bdcc89..e366e6d 100644 --- a/client/src/main/java/Static160.java +++ b/client/src/main/java/Static160.java @@ -69,14 +69,14 @@ public final class Static160 { return false; } else if (local29 > arg4 && local66 > arg4) { return false; - } else if (local50 < Static240.anInt5334 && local87 < Static240.anInt5334) { + } else if (local50 < Static240.screenLowerX && local87 < Static240.screenLowerX) { return false; - } else if (local50 > Static247.anInt5405 && local87 > Static247.anInt5405) { + } else if (local50 > Static247.screenUpperX && local87 > Static247.screenUpperX) { return false; - } else if (local56 < Static1.anInt4 && local93 < Static1.anInt4) { + } else if (local56 < Static1.screenLowerY && local93 < Static1.screenLowerY) { return false; } else { - return local56 <= Static148.anInt3535 || local93 <= Static148.anInt3535; + return local56 <= Static148.screenUpperY || local93 <= Static148.screenUpperY; } } } diff --git a/client/src/main/java/Static164.java b/client/src/main/java/Static164.java index 48bb25a..6b14844 100644 --- a/client/src/main/java/Static164.java +++ b/client/src/main/java/Static164.java @@ -42,7 +42,7 @@ public final class Static164 { if (local14 > 0L) { local65 = arg3; } - local75 = Static129.anIntArray297; + local75 = Static129.pixels; local90 = (52736 - arg2 * 512) * 4 + arg0 * 4 + 24624; if (local35 == 0 || local35 == 2) { if (local28 == 0) { @@ -118,7 +118,7 @@ public final class Static164 { local65 = 15597568; } local90 = arg0 * 4 + (103 - arg2) * 2048 + 24624; - local75 = Static129.anIntArray297; + local75 = Static129.pixels; if (local28 == 0 || local28 == 2) { local75[local90 + 1536] = local65; local75[local90 + 1025] = local65; @@ -200,17 +200,17 @@ public final class Static164 { return null; } } - @Pc(118) int[] local118 = Static129.anIntArray297; - @Pc(120) int local120 = Static129.anInt3144; + @Pc(118) int[] local118 = Static129.pixels; + @Pc(120) int local120 = Static129.width; @Pc(122) int local122 = Static129.anInt3146; @Pc(125) int[] local125 = new int[4]; Static129.method2497(local125); @Pc(133) SoftwareSprite local133 = new SoftwareSprite(36, 32); Static129.method2491(local133.anIntArray20, 36, 32); - Rasteriser.method1908(); - Rasteriser.method1919(16, 16); + Rasteriser.prepare(); + Rasteriser.setBounds(16, 16); @Pc(145) int local145 = local5.anInt2375; - Rasteriser.aBoolean136 = false; + Rasteriser.jagged = false; if (arg6) { local145 = (int) ((double) local145 * 1.5D); } else if (arg4 == 2) { @@ -241,8 +241,8 @@ public final class Static164 { } Static129.method2491(local118, local120, local122); Static129.method2488(local125); - Rasteriser.method1908(); - Rasteriser.aBoolean136 = true; + Rasteriser.prepare(); + Rasteriser.jagged = true; return GlRenderer.enabled && !arg1 ? new GlSprite(local133) : local133; } } diff --git a/client/src/main/java/Static176.java b/client/src/main/java/Static176.java index 6bd647a..cc58d95 100644 --- a/client/src/main/java/Static176.java +++ b/client/src/main/java/Static176.java @@ -65,10 +65,10 @@ public final class Static176 { @Pc(15) int local15; @Pc(47) int local47; if (Static260.anInt5014 == 0) { - @Pc(13) int local13 = Static148.anInt3535; - local15 = Static1.anInt4; - @Pc(17) int local17 = Static247.anInt5405; - @Pc(19) int local19 = Static240.anInt5334; + @Pc(13) int local13 = Static148.screenUpperY; + local15 = Static1.screenLowerY; + @Pc(17) int local17 = Static247.screenUpperX; + @Pc(19) int local19 = Static240.screenLowerX; @Pc(33) int local33 = (arg5 - arg3) * (local17 - local19) / arg1 + local19; local47 = local15 + (local13 - local15) * (arg4 - arg0) / arg2; if (Static241.aBoolean302 && (Static274.anInt4999 & 0x40) != 0) { diff --git a/client/src/main/java/Static19.java b/client/src/main/java/Static19.java index 78a78b7..8e2f481 100644 --- a/client/src/main/java/Static19.java +++ b/client/src/main/java/Static19.java @@ -76,9 +76,9 @@ public final class Static19 { @OriginalMember(owner = "client!bi", name = "a", descriptor = "(IIBI)I") public static int method588(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(3) int arg2) { - @Pc(19) int local19 = Rasteriser.anIntArray220[Static268.method4585(arg1, arg2)]; + @Pc(19) int local19 = Rasteriser.palette[Static268.method4585(arg1, arg2)]; if (arg0 > 0) { - @Pc(31) int local31 = Rasteriser.anInterface1_2.method3238(arg0 & 0xFFFF); + @Pc(31) int local31 = Rasteriser.textureProvider.method3238(arg0 & 0xFFFF); @Pc(49) int local49; @Pc(73) int local73; if (local31 != 0) { @@ -96,7 +96,7 @@ public final class Static19 { local19 = ((local49 & 0xFF00) * local31 + local73 * (local19 & 0xFF00) & 0xFF0000) + (local31 * (local49 & 0xFF00FF) + ((local19 & 0xFF00FF) * local73) & 0xFF00FF00) >> 8; } } - local49 = Rasteriser.anInterface1_2.method3229(arg0 & 0xFFFF); + local49 = Rasteriser.textureProvider.method3229(arg0 & 0xFFFF); if (local49 != 0) { local49 += 256; @Pc(125) int local125 = (local19 >> 16 & 0xFF) * local49; diff --git a/client/src/main/java/Static190.java b/client/src/main/java/Static190.java index e8f8f08..b0ddd8c 100644 --- a/client/src/main/java/Static190.java +++ b/client/src/main/java/Static190.java @@ -39,9 +39,9 @@ public final class Static190 { if (local43 != null) { return local43; } - Rasteriser.aBoolean134 = false; + Rasteriser.textureHasTransparency = false; local43 = Static164.method3150(arg4, false, arg1, arg2, arg0, arg3, false); - if (local43 != null && !Rasteriser.aBoolean134) { + if (local43 != null && !Rasteriser.textureHasTransparency) { Static118.aClass99_16.method3095(local43, local37); } return local43; diff --git a/client/src/main/java/Static197.java b/client/src/main/java/Static197.java index 7a3b31f..d3b9257 100644 --- a/client/src/main/java/Static197.java +++ b/client/src/main/java/Static197.java @@ -162,9 +162,9 @@ public final class Static197 { GameShell.thread.setPriority(5); Static260.frameBuffer = null; Static268.method4580(); - ((Js5GlTextureProvider) Rasteriser.anInterface1_2).method3248(200); + ((Js5GlTextureProvider) Rasteriser.textureProvider).method3248(200); if (Static178.highDetailLighting) { - Rasteriser.method1911(0.7F); + Rasteriser.setBrightness(0.7F); } Static114.method4637(); } else if (arg1 == 0 && arg3 > 0) { @@ -172,19 +172,19 @@ public final class Static197 { Static260.frameBuffer = Static131.create(503, 765, GameShell.canvas); Static268.method4583(); Static76.method1643(); - ((Js5GlTextureProvider) Rasteriser.anInterface1_2).method3248(20); + ((Js5GlTextureProvider) Rasteriser.textureProvider).method3248(20); if (Static178.highDetailLighting) { if (Static113.anInt4609 == 1) { - Rasteriser.method1911(0.9F); + Rasteriser.setBrightness(0.9F); } if (Static113.anInt4609 == 2) { - Rasteriser.method1911(0.8F); + Rasteriser.setBrightness(0.8F); } if (Static113.anInt4609 == 3) { - Rasteriser.method1911(0.7F); + Rasteriser.setBrightness(0.7F); } if (Static113.anInt4609 == 4) { - Rasteriser.method1911(0.6F); + Rasteriser.setBrightness(0.6F); } } Static95.method1939(); diff --git a/client/src/main/java/Static217.java b/client/src/main/java/Static217.java index 0d1bef8..1018128 100644 --- a/client/src/main/java/Static217.java +++ b/client/src/main/java/Static217.java @@ -116,7 +116,7 @@ public final class Static217 { Static90.method1857(); Static139.aClass99_22.method3104(); if (!GlRenderer.enabled) { - ((Js5GlTextureProvider) Rasteriser.anInterface1_2).method3247(); + ((Js5GlTextureProvider) Rasteriser.textureProvider).method3247(); } Static105.aClass54_9.method1815(); Static213.aClass153_88.method4499(); diff --git a/client/src/main/java/Static221.java b/client/src/main/java/Static221.java index 2b9e83c..4bf65b5 100644 --- a/client/src/main/java/Static221.java +++ b/client/src/main/java/Static221.java @@ -34,7 +34,7 @@ public final class Static221 { Static250.anInt5434 = 0; } @Pc(20) int local20 = 0; - @Pc(24) int local24 = Static129.anInt3144 * arg1; + @Pc(24) int local24 = Static129.width * arg1; @Pc(26) int local26 = 0; for (@Pc(28) int local28 = 1; local28 < 255; local28++) { @Pc(43) int local43 = (256 - local28) * Static35.anIntArray83[local28] / 256; @@ -44,7 +44,7 @@ public final class Static221 { local20 += local43; @Pc(55) int local55; for (local55 = local43; local55 < 128; local55++) { - @Pc(65) int local65 = Static129.anIntArray297[local24++ + arg0]; + @Pc(65) int local65 = Static129.pixels[local24++ + arg0]; @Pc(70) int local70 = Static216.anIntArray188[local20++]; if (local70 == 0) { Static167.aClass3_Sub2_Sub1_Sub1_3.anIntArray20[local26++] = local65; @@ -62,9 +62,9 @@ public final class Static221 { } } for (local55 = 0; local55 < local43; local55++) { - Static167.aClass3_Sub2_Sub1_Sub1_3.anIntArray20[local26++] = Static129.anIntArray297[arg0 + local24++]; + Static167.aClass3_Sub2_Sub1_Sub1_3.anIntArray20[local26++] = Static129.pixels[arg0 + local24++]; } - local24 += Static129.anInt3144 - 128; + local24 += Static129.width - 128; } if (GlRenderer.enabled) { Static46.method1178(Static167.aClass3_Sub2_Sub1_Sub1_3.anIntArray20, arg0, arg1, Static167.aClass3_Sub2_Sub1_Sub1_3.anInt1867, Static167.aClass3_Sub2_Sub1_Sub1_3.anInt1859); diff --git a/client/src/main/java/Static237.java b/client/src/main/java/Static237.java index dfd5303..7e68eca 100644 --- a/client/src/main/java/Static237.java +++ b/client/src/main/java/Static237.java @@ -116,9 +116,9 @@ public final class Static237 { @OriginalMember(owner = "client!td", name = "a", descriptor = "(ISIB)I") public static int method4096(@OriginalArg(0) int arg0, @OriginalArg(1) short arg1, @OriginalArg(2) int arg2, @OriginalArg(3) byte arg3) { - @Pc(5) int local5 = Rasteriser.anIntArray220[Static268.method4585(arg0, arg2)]; + @Pc(5) int local5 = Rasteriser.palette[Static268.method4585(arg0, arg2)]; if (arg1 != -1) { - @Pc(15) int local15 = Rasteriser.anInterface1_2.method3238(arg1 & 0xFFFF); + @Pc(15) int local15 = Rasteriser.textureProvider.method3238(arg1 & 0xFFFF); @Pc(21) int local21; @Pc(44) int local44; if (local15 != 0) { @@ -136,7 +136,7 @@ public final class Static237 { local5 = ((local21 & 0xFF00FF) * local15 + (local5 & 0xFF00FF) * local44 & 0xFF00FF00) + ((local21 & 0xFF00) * local15 + (local5 & 0xFF00) * local44 & 0xFF0000) >> 8; } } - local21 = Rasteriser.anInterface1_2.method3229(arg1 & 0xFFFF); + local21 = Rasteriser.textureProvider.method3229(arg1 & 0xFFFF); if (local21 != 0) { local21 += 256; @Pc(92) int local92 = (local5 >> 16 & 0xFF) * local21; diff --git a/client/src/main/java/Static240.java b/client/src/main/java/Static240.java index 409da10..ff6addf 100644 --- a/client/src/main/java/Static240.java +++ b/client/src/main/java/Static240.java @@ -10,7 +10,7 @@ public final class Static240 { public static int anInt5333; @OriginalMember(owner = "client!tg", name = "c", descriptor = "I") - public static int anInt5334; + public static int screenLowerX; @OriginalMember(owner = "client!tg", name = "d", descriptor = "[Lclient!qf;") public static Sprite[] aClass3_Sub2_Sub1Array10; diff --git a/client/src/main/java/Static247.java b/client/src/main/java/Static247.java index b642f07..08301aa 100644 --- a/client/src/main/java/Static247.java +++ b/client/src/main/java/Static247.java @@ -8,7 +8,7 @@ public final class Static247 { public static Class120[] aClass120Array2; @OriginalMember(owner = "client!ub", name = "m", descriptor = "I") - public static int anInt5405; + public static int screenUpperX; @OriginalMember(owner = "client!ub", name = "a", descriptor = "(IIIIIII)V") public static void method4244(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4, @OriginalArg(5) int arg5) { diff --git a/client/src/main/java/Static248.java b/client/src/main/java/Static248.java index 42c26ad..5726656 100644 --- a/client/src/main/java/Static248.java +++ b/client/src/main/java/Static248.java @@ -128,7 +128,7 @@ public final class Static248 { for (local37 = 0; local37 < Static182.aClass3_Sub14ArrayArray2[local32].length; local37++) { @Pc(336) Class3_Sub14 local336 = Static182.aClass3_Sub14ArrayArray2[local32][local37]; @Pc(350) float local350 = 201.5F - (float) local32 * 50.0F - (local336.aBoolean140 ? 1.0F : 0.5F); - if (local336.anInt2485 != -1 && Rasteriser.anInterface1_2.method3237(local336.anInt2485) == 4 && Static220.aBoolean244) { + if (local336.anInt2485 != -1 && Rasteriser.textureProvider.method3237(local336.anInt2485) == 4 && Static220.aBoolean244) { Static21.method619(local336.anInt2486); } local336.method1944(Static130.aClass3_Sub5ArrayArrayArray1, local350, false); diff --git a/client/src/main/java/Static253.java b/client/src/main/java/Static253.java index 301f2d3..62bac12 100644 --- a/client/src/main/java/Static253.java +++ b/client/src/main/java/Static253.java @@ -101,7 +101,7 @@ public final class Static253 { GlRenderer.method4171(arg2, arg4, arg3, arg0, arg3 / 2 + arg2, arg4 - -(arg0 / 2), local248, local253, Static223.anInt5029, Static223.anInt5029); } else { Static129.method2496(arg2, arg4, arg3 + arg2, arg0 + arg4); - Rasteriser.method1908(); + Rasteriser.prepare(); } if (Static60.aBoolean108 || Static155.anInt3751 < arg2 || Static155.anInt3751 >= arg3 + arg2 || arg4 > Static60.anInt1892 || arg0 + arg4 <= Static60.anInt1892) { Static39.aBoolean77 = false; @@ -109,11 +109,11 @@ public final class Static253 { } else { Static39.aBoolean77 = true; Static2.anInt7 = 0; - local171 = Static247.anInt5405; - @Pc(344) int local344 = Static1.anInt4; - local127 = Static240.anInt5334; + local171 = Static247.screenUpperX; + @Pc(344) int local344 = Static1.screenLowerY; + local127 = Static240.screenLowerX; Static150.anInt3582 = local127 + (local171 - local127) * (-arg2 + Static155.anInt3751) / arg3; - @Pc(361) int local361 = Static148.anInt3535; + @Pc(361) int local361 = Static148.screenUpperY; Static34.anInt1053 = (local361 - local344) * (Static60.anInt1892 - arg4) / arg0 + local344; } Static107.method2261(); @@ -147,7 +147,7 @@ public final class Static253 { Static142.method2726(arg4, arg3, arg2, 256, arg0, 256); Static233.method4000(arg3, arg2, arg0, 256, 256, arg4); } - ((Js5GlTextureProvider) Rasteriser.anInterface1_2).method3239(Static178.anInt4247); + ((Js5GlTextureProvider) Rasteriser.textureProvider).method3239(Static178.anInt4247); Static115.method2310(arg3, arg4, arg0, arg2); Static240.anInt5333 = local123; Static134.anInt3302 = local121; diff --git a/client/src/main/java/Static269.java b/client/src/main/java/Static269.java index 576438d..a401002 100644 --- a/client/src/main/java/Static269.java +++ b/client/src/main/java/Static269.java @@ -293,7 +293,7 @@ public final class Static269 { Static48.method1195(arg3, 0, local61, local236, arg2, 0, local211, local50); Static38.method959(0, 0, local211, arg3, local236, local50, local61, arg2); Static46.method1178(Static153.aClass3_Sub2_Sub1_Sub1_2.anIntArray20, arg0, arg1, arg3, arg2); - Static129.anIntArray297 = null; + Static129.pixels = null; } else { Static214.method4364(arg3 + arg0, arg1, local61, local50, arg0, local236, arg1 + arg2, local211); Static48.method1195(arg0 + arg3, arg0, local61, local236, arg2 + arg1, arg1, local211, local50); diff --git a/client/src/main/java/Static280.java b/client/src/main/java/Static280.java index ab441b7..390ce3e 100644 --- a/client/src/main/java/Static280.java +++ b/client/src/main/java/Static280.java @@ -61,40 +61,40 @@ public final class Static280 { @OriginalMember(owner = "client!wl", name = "a", descriptor = "([IIIIIIIIIZB)V") public static void method4667(@OriginalArg(0) int[] arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4, @OriginalArg(5) int arg5, @OriginalArg(6) int arg6, @OriginalArg(7) int arg7, @OriginalArg(8) int arg8, @OriginalArg(9) boolean arg9) { @Pc(7) int local7 = arg2; - if (Static129.anInt3148 <= arg2) { + if (Static129.clipRight <= arg2) { return; } - if (arg2 < Static129.anInt3145) { - local7 = Static129.anInt3145; + if (arg2 < Static129.clipLeft) { + local7 = Static129.clipLeft; } @Pc(30) int local30 = arg7 + arg2; - if (Static129.anInt3145 >= local30) { + if (Static129.clipLeft >= local30) { return; } - if (Static129.anInt3148 < local30) { - local30 = Static129.anInt3148; + if (Static129.clipRight < local30) { + local30 = Static129.clipRight; } @Pc(43) int local43 = arg8; - if (Static129.anInt3149 <= arg8) { + if (Static129.clipBottom <= arg8) { return; } @Pc(56) int local56 = arg8 + arg6; - if (arg8 < Static129.anInt3147) { - local43 = Static129.anInt3147; + if (arg8 < Static129.clipTop) { + local43 = Static129.clipTop; } - if (local56 <= Static129.anInt3147) { + if (local56 <= Static129.clipTop) { return; } - @Pc(79) int local79 = local7 + Static129.anInt3144 * local43; + @Pc(79) int local79 = local7 + Static129.width * local43; if (arg5 == 9) { arg3 = arg3 + 1 & 0x3; arg5 = 1; } - @Pc(99) int local99 = local7 + Static129.anInt3144 - local30; + @Pc(99) int local99 = local7 + Static129.width - local30; local43 -= arg8; @Pc(108) int local108 = arg6 - local43; - if (Static129.anInt3149 < local56) { - local56 = Static129.anInt3149; + if (Static129.clipBottom < local56) { + local56 = Static129.clipBottom; } if (arg5 == 10) { arg3 = arg3 + 3 & 0x3; diff --git a/client/src/main/java/Static285.java b/client/src/main/java/Static285.java index 51c0b33..14c0246 100644 --- a/client/src/main/java/Static285.java +++ b/client/src/main/java/Static285.java @@ -46,8 +46,8 @@ public final class Static285 { @OriginalMember(owner = "client!dd", name = "a", descriptor = "([I[BIIIIIIIII[I[I)V") public static void method1138(@OriginalArg(0) int[] arg0, @OriginalArg(1) byte[] arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4, @OriginalArg(5) int arg5, @OriginalArg(6) int arg6, @OriginalArg(7) int arg7, @OriginalArg(8) int arg8, @OriginalArg(9) int arg9, @OriginalArg(10) int arg10, @OriginalArg(11) int[] arg11, @OriginalArg(12) int[] arg12) { - @Pc(3) int local3 = arg2 - Static129.anInt3145; - @Pc(7) int local7 = arg3 - Static129.anInt3147; + @Pc(3) int local3 = arg2 - Static129.clipLeft; + @Pc(7) int local7 = arg3 - Static129.clipTop; for (@Pc(9) int local9 = local7; local9 < local7 + arg5; local9++) { @Pc(18) int local18 = arg11[local9]; @Pc(22) int local22 = arg12[local9]; @@ -82,7 +82,7 @@ public final class Static285 { if (arg1[arg7++] == 0) { arg8++; } else { - Static129.anIntArray297[arg8++] = arg6; + Static129.pixels[arg8++] = arg6; } } arg7 += local31 + arg10; diff --git a/client/src/main/java/Static33.java b/client/src/main/java/Static33.java index 9480b70..ccf53b9 100644 --- a/client/src/main/java/Static33.java +++ b/client/src/main/java/Static33.java @@ -164,7 +164,7 @@ public final class Static33 { local519 = 127; } @Pc(541) int local541 = local519 + (local480 & 0x380) + (local480 + local19 & 0xFC00); - local462[((local367 & 0x3F) << 6) + (local102 & 0x3F)] = Rasteriser.anIntArray220[Static87.method1814(96, local541)]; + local462[((local367 & 0x3F) << 6) + (local102 & 0x3F)] = Rasteriser.palette[Static87.method1814(96, local541)]; } else if (local462 != null) { local462[((local367 & 0x3F) << 6) + (local102 & 0x3F)] = 0; } diff --git a/client/src/main/java/Static37.java b/client/src/main/java/Static37.java index 10d718c..aa56329 100644 --- a/client/src/main/java/Static37.java +++ b/client/src/main/java/Static37.java @@ -5,7 +5,7 @@ import org.openrs2.deob.annotation.Pc; public final class Static37 { @OriginalMember(owner = "client!cm", name = "a", descriptor = "Lclient!m;") - public static GlTextureProvider anInterface1_1; + public static TextureProvider anInterface1_1; @OriginalMember(owner = "client!cm", name = "c", descriptor = "I") public static int anInt1176; diff --git a/client/src/main/java/Static45.java b/client/src/main/java/Static45.java index 0432ec1..83fa32f 100644 --- a/client/src/main/java/Static45.java +++ b/client/src/main/java/Static45.java @@ -223,7 +223,7 @@ public final class Static45 { local267 = 127; } local273 = (local234 & 0x380) + (local234 + local10 & 0xFC00) + local267; - local254 = Rasteriser.anIntArray220[Static87.method1814(96, local273)]; + local254 = Rasteriser.palette[Static87.method1814(96, local273)]; } local267 = local146[local168][local173]; local332 = local146[local168][local173 + 1]; @@ -241,7 +241,7 @@ public final class Static45 { @Pc(1834) int local1834 = Static240.aByteArrayArrayArray14[local152][local322][local1794] & 0xFF; if (local1834 != 0) { @Pc(1842) FloType local1842 = Static256.method4395(local1834 - 1); - if (local1842.anInt5892 != -1 && Rasteriser.anInterface1_2.method3237(local1842.anInt5892) == 4) { + if (local1842.anInt5892 != -1 && Rasteriser.textureProvider.method3237(local1842.anInt5892) == 4) { Static62.anIntArrayArray11[local168][local173] = local1842.anInt5889 + (local1842.anInt5898 << 24); continue label771; } @@ -258,7 +258,7 @@ public final class Static45 { @Pc(1353) int local1353; @Pc(1288) int local1288; if (GlRenderer.enabled && !arg1 && Static62.anIntArrayArray11 != null && local152 == 0) { - if (local1248.anInt5892 != -1 && Rasteriser.anInterface1_2.method3237(local1248.anInt5892) == 4) { + if (local1248.anInt5892 != -1 && Rasteriser.textureProvider.method3237(local1248.anInt5892) == 4) { Static62.anIntArrayArray11[local168][local173] = (local1248.anInt5898 << 24) + local1248.anInt5889; } else { label737: for (local1288 = local168 - 1; local1288 <= local168 + 1; local1288++) { @@ -267,7 +267,7 @@ public final class Static45 { local1353 = Static240.aByteArrayArrayArray14[local152][local1288][local1301] & 0xFF; if (local1353 != 0) { @Pc(1366) FloType local1366 = Static256.method4395(local1353 - 1); - if (local1366.anInt5892 != -1 && Rasteriser.anInterface1_2.method3237(local1366.anInt5892) == 4) { + if (local1366.anInt5892 != -1 && Rasteriser.textureProvider.method3237(local1366.anInt5892) == 4) { Static62.anIntArrayArray11[local168][local173] = local1366.anInt5889 + (local1366.anInt5898 << 24); break label737; } @@ -278,14 +278,14 @@ public final class Static45 { } } local1288 = local1248.anInt5892; - if (local1288 >= 0 && !Rasteriser.anInterface1_2.method3236(local1288)) { + if (local1288 >= 0 && !Rasteriser.textureProvider.method3236(local1288)) { local1288 = -1; } @Pc(1458) int local1458; @Pc(1429) int local1429; if (local1288 >= 0) { local1301 = -1; - local1353 = Rasteriser.anIntArray220[Static230.method3949(Rasteriser.anInterface1_2.method3234(local1288), 96)]; + local1353 = Rasteriser.palette[Static230.method3949(Rasteriser.textureProvider.getAverageColor(local1288), 96)]; } else if (local1248.anInt5899 == -1) { local1301 = -2; local1353 = 0; @@ -298,7 +298,7 @@ public final class Static45 { local1429 = 127; } local1458 = (local1301 & 0x380) + ((local1301 + local10 & 0xFC00) + local1429); - local1353 = Rasteriser.anIntArray220[Static230.method3949(local1458, 96)]; + local1353 = Rasteriser.palette[Static230.method3949(local1458, 96)]; } if (local1248.anInt5894 >= 0) { local1429 = local1248.anInt5894; @@ -309,7 +309,7 @@ public final class Static45 { local1458 = 127; } @Pc(1529) int local1529 = (local1429 & 0x380) + ((local1429 + local10 & 0xFC00) + local1458); - local1353 = Rasteriser.anIntArray220[Static230.method3949(local1529, 96)]; + local1353 = Rasteriser.palette[Static230.method3949(local1529, 96)]; } Static176.method3305(local152, local168, local173, local322, local1242, local1288, local200, local202, local209, local349, Static87.method1814(local267, local234), Static87.method1814(local273, local234), Static87.method1814(local326, local234), Static87.method1814(local332, local234), Static230.method3949(local1301, local267), Static230.method3949(local1301, local273), Static230.method3949(local1301, local326), Static230.method3949(local1301, local332), local254, local1353); if (GlRenderer.enabled && local152 > 0) { diff --git a/client/src/main/java/Static70.java b/client/src/main/java/Static70.java index e31e575..973f6fd 100644 --- a/client/src/main/java/Static70.java +++ b/client/src/main/java/Static70.java @@ -46,7 +46,7 @@ public final class Static70 { @Pc(18) FloType local18 = Static256.method4395(local11); if (local18 != null) { @Pc(24) int local24 = local18.anInt5892; - if (local24 >= 0 && !Rasteriser.anInterface1_2.method3236(local24)) { + if (local24 >= 0 && !Rasteriser.textureProvider.method3236(local24)) { local24 = -1; } @Pc(53) int local53; @@ -62,9 +62,9 @@ public final class Static70 { local72 = 127; } local95 = (local66 & 0x380) + (arg1 + local66 & 0xFC00) + local72; - local53 = Rasteriser.anIntArray220[Static230.method3949(local95, 96)]; + local53 = Rasteriser.palette[Static230.method3949(local95, 96)]; } else if (local24 >= 0) { - local53 = Rasteriser.anIntArray220[Static230.method3949(Rasteriser.anInterface1_2.method3234(local24), 96)]; + local53 = Rasteriser.palette[Static230.method3949(Rasteriser.textureProvider.getAverageColor(local24), 96)]; } else if (local18.anInt5899 == -1) { local53 = -1; } else { @@ -76,7 +76,7 @@ public final class Static70 { local72 = 127; } local95 = local72 + (local66 & 0x380) + (local66 + arg1 & 0xFC00); - local53 = Rasteriser.anIntArray220[Static230.method3949(local95, 96)]; + local53 = Rasteriser.palette[Static230.method3949(local95, 96)]; } Static145.anIntArray330[local11 + 1] = local53; } diff --git a/client/src/main/java/Static87.java b/client/src/main/java/Static87.java index c7c5ce3..47c74a6 100644 --- a/client/src/main/java/Static87.java +++ b/client/src/main/java/Static87.java @@ -113,7 +113,7 @@ public final class Static87 { Static46.method1187(arg0, arg6, arg4, arg7); } else { Static129.method2496(arg0, arg6, arg4, arg7); - Rasteriser.method1908(); + Rasteriser.prepare(); } for (@Pc(18) int local18 = 0; local18 < arg3.length; local18++) { @Pc(30) Component local30 = arg3[local18]; @@ -394,7 +394,7 @@ public final class Static87 { Static46.method1187(arg0, arg6, arg4, arg7); } else { Static129.method2496(arg0, arg6, arg4, arg7); - Rasteriser.method1908(); + Rasteriser.prepare(); } } if (Static223.aBooleanArray116[local57] || Static199.anInt4672 > 1) { @@ -421,7 +421,7 @@ public final class Static87 { } else { local1476 = Static190.method3443(1, local545, local30.aBoolean31, local30.objCounts[local270], 3153952); } - if (Rasteriser.aBoolean134) { + if (Rasteriser.textureHasTransparency) { Static186.aBooleanArray100[local57] = true; } if (local1476 == null) { @@ -448,8 +448,8 @@ public final class Static87 { local1575 = Static46.anInt1441; local1577 = Static46.clipY; } else { - local1577 = Static129.anInt3147; - local1575 = Static129.anInt3149; + local1577 = Static129.clipTop; + local1575 = Static129.clipBottom; } @Pc(1611) int local1611; if (local1577 > local556 + local514 && local1571.scrollY > 0) { @@ -754,7 +754,7 @@ public final class Static87 { GlRenderer.enableDepthMask(); } } else { - Rasteriser.method1919(local556, local545); + Rasteriser.setBounds(local556, local545); local563 = MathUtils.anIntArray223[local30.modelXAngle] * local30.modelZoom >> 16; local571 = local30.modelZoom * MathUtils.anIntArray225[local30.modelXAngle] >> 16; if (!local30.aBoolean32) { @@ -764,7 +764,7 @@ public final class Static87 { } else { local2589.method4571(local30.modelYAngle, local30.modelYOffset, local30.modelXAngle, local30.modelXOffset, local30.modelZOffset + local563 + local503, local571 + local30.modelZOffset, -1L); } - Rasteriser.method1915(); + Rasteriser.prepareOffsets(); } } } else { diff --git a/client/src/main/java/Static88.java b/client/src/main/java/Static88.java index d55ddec..f7542f5 100644 --- a/client/src/main/java/Static88.java +++ b/client/src/main/java/Static88.java @@ -3205,16 +3205,16 @@ public final class Static88 { Static113.anInt4609 = local809; if (!GlRenderer.enabled || !Static178.highDetailLighting) { if (Static113.anInt4609 == 1) { - Rasteriser.method1911(0.9F); + Rasteriser.setBrightness(0.9F); } if (Static113.anInt4609 == 2) { - Rasteriser.method1911(0.8F); + Rasteriser.setBrightness(0.8F); } if (Static113.anInt4609 == 3) { - Rasteriser.method1911(0.7F); + Rasteriser.setBrightness(0.7F); } if (Static113.anInt4609 == 4) { - Rasteriser.method1911(0.6F); + Rasteriser.setBrightness(0.6F); } } if (GlRenderer.enabled) { @@ -3257,7 +3257,7 @@ public final class Static88 { if (local226 == 6006) { local28--; Static53.aBoolean99 = Static254.anIntArray487[local28] == 1; - ((Js5GlTextureProvider) Rasteriser.anInterface1_2).method3245(!Static53.aBoolean99); + ((Js5GlTextureProvider) Rasteriser.textureProvider).method3245(!Static53.aBoolean99); Static203.method3663(GameShell.signLink); Static18.sentToServer = false; continue; @@ -3308,19 +3308,19 @@ public final class Static88 { local28--; Static178.highDetailLighting = Static254.anIntArray487[local28] == 1; if (GlRenderer.enabled && Static178.highDetailLighting) { - Rasteriser.method1911(0.7F); + Rasteriser.setBrightness(0.7F); } else { if (Static113.anInt4609 == 1) { - Rasteriser.method1911(0.9F); + Rasteriser.setBrightness(0.9F); } if (Static113.anInt4609 == 2) { - Rasteriser.method1911(0.8F); + Rasteriser.setBrightness(0.8F); } if (Static113.anInt4609 == 3) { - Rasteriser.method1911(0.7F); + Rasteriser.setBrightness(0.7F); } if (Static113.anInt4609 == 4) { - Rasteriser.method1911(0.6F); + Rasteriser.setBrightness(0.6F); } } Static145.method2742(); diff --git a/client/src/main/java/Texture.java b/client/src/main/java/Texture.java index 656eaae..3f606ba 100644 --- a/client/src/main/java/Texture.java +++ b/client/src/main/java/Texture.java @@ -73,7 +73,7 @@ public final class Texture { } @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) GlTextureProvider arg5, @OriginalArg(7) boolean arg6) { + public final int[] method2725(@OriginalArg(0) int arg0, @OriginalArg(1) boolean arg1, @OriginalArg(2) int arg2, @OriginalArg(3) double arg3, @OriginalArg(5) Js5 arg4, @OriginalArg(6) TextureProvider arg5, @OriginalArg(7) boolean arg6) { Static241.method4537(arg3); Static37.anInterface1_1 = arg5; Static176.aClass153_76 = arg4; @@ -152,7 +152,7 @@ public final class Texture { } @OriginalMember(owner = "client!lc", name = "a", descriptor = "(IIZLclient!m;DILclient!ve;)[B") - public final byte[] method2728(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) boolean arg2, @OriginalArg(3) GlTextureProvider arg3, @OriginalArg(4) double arg4, @OriginalArg(6) Js5 arg5) { + 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]; Static241.method4537(arg4); Static176.aClass153_76 = arg5; @@ -241,7 +241,7 @@ public final class Texture { } @OriginalMember(owner = "client!lc", name = "a", descriptor = "(ZLclient!m;Lclient!ve;)Z") - public final boolean method2729(@OriginalArg(1) GlTextureProvider arg0, @OriginalArg(2) Js5 arg1) { + public final boolean method2729(@OriginalArg(1) TextureProvider arg0, @OriginalArg(2) Js5 arg1) { @Pc(10) int local10; if (Static215.anInt4868 > 0) { for (local10 = 0; local10 < this.anIntArray327.length; local10++) { diff --git a/client/src/main/java/TextureOp32.java b/client/src/main/java/TextureOp32.java index 4bcb74b..52df82e 100644 --- a/client/src/main/java/TextureOp32.java +++ b/client/src/main/java/TextureOp32.java @@ -63,7 +63,7 @@ public final class TextureOp32 extends TextureOp { } else { @Pc(22) int local22 = Static189.anInt4457; @Pc(24) int local24 = Static172.anInt4165; - @Pc(34) int local34 = Static37.anInterface1_1.method3233(this.anInt5539) ? 64 : 128; + @Pc(34) int local34 = Static37.anInterface1_1.isLowDetail(this.anInt5539) ? 64 : 128; this.anIntArray483 = Static37.anInterface1_1.method3235(this.anInt5539); this.anInt5536 = local34; this.anInt5535 = local34; diff --git a/client/src/main/java/GlTextureProvider.java b/client/src/main/java/TextureProvider.java similarity index 90% rename from client/src/main/java/GlTextureProvider.java rename to client/src/main/java/TextureProvider.java index 4e8032d..99970e8 100644 --- a/client/src/main/java/GlTextureProvider.java +++ b/client/src/main/java/TextureProvider.java @@ -3,10 +3,10 @@ import org.openrs2.deob.annotation.OriginalClass; import org.openrs2.deob.annotation.OriginalMember; @OriginalClass("client!m") -public interface GlTextureProvider { +public interface TextureProvider { @OriginalMember(owner = "client!m", name = "a", descriptor = "(BI)Z") - boolean method3226(@OriginalArg(1) int arg0); + boolean isOpaque(@OriginalArg(1) int arg0); @OriginalMember(owner = "client!m", name = "a", descriptor = "(IZ)V") void method3227(@OriginalArg(0) int arg0); @@ -27,10 +27,10 @@ public interface GlTextureProvider { int[] method3232(@OriginalArg(0) int arg0, @OriginalArg(2) float arg1); @OriginalMember(owner = "client!m", name = "b", descriptor = "(BI)Z") - boolean method3233(@OriginalArg(1) int arg0); + boolean isLowDetail(@OriginalArg(1) int arg0); @OriginalMember(owner = "client!m", name = "d", descriptor = "(II)I") - int method3234(@OriginalArg(0) int arg0); + int getAverageColor(@OriginalArg(0) int arg0); @OriginalMember(owner = "client!m", name = "e", descriptor = "(II)[I") int[] method3235(@OriginalArg(1) int arg0); diff --git a/client/src/main/java/WorldMapFont.java b/client/src/main/java/WorldMapFont.java index b67ae08..6443dc2 100644 --- a/client/src/main/java/WorldMapFont.java +++ b/client/src/main/java/WorldMapFont.java @@ -118,31 +118,31 @@ public final class WorldMapFont { @Pc(21) int local21 = arg4[arg0 + 3]; @Pc(27) int local27 = arg4[arg0 + 4]; @Pc(47) int local47 = arg4[arg0] * 16384 + arg4[arg0 + 1] * 128 + arg4[arg0 + 2]; - @Pc(53) int local53 = local7 + local15 * Static129.anInt3144; - @Pc(57) int local57 = Static129.anInt3144 - local21; + @Pc(53) int local53 = local7 + local15 * Static129.width; + @Pc(57) int local57 = Static129.width - local21; @Pc(59) int local59 = 0; @Pc(66) int local66; - if (local15 < Static129.anInt3147) { - local66 = Static129.anInt3147 - local15; + if (local15 < Static129.clipTop) { + local66 = Static129.clipTop - local15; local27 -= local66; - local15 = Static129.anInt3147; + local15 = Static129.clipTop; local47 += local66 * local21; - local53 += local66 * Static129.anInt3144; + local53 += local66 * Static129.width; } - if (local15 + local27 >= Static129.anInt3149) { - local27 -= local15 + local27 + 1 - Static129.anInt3149; + if (local15 + local27 >= Static129.clipBottom) { + local27 -= local15 + local27 + 1 - Static129.clipBottom; } - if (local7 < Static129.anInt3145) { - local66 = Static129.anInt3145 - local7; + if (local7 < Static129.clipLeft) { + local66 = Static129.clipLeft - local7; local21 -= local66; - local7 = Static129.anInt3145; + local7 = Static129.clipLeft; local47 += local66; local53 += local66; local59 = local66; local57 += local66; } - if (local7 + local21 >= Static129.anInt3148) { - local66 = local7 + local21 + 1 - Static129.anInt3148; + if (local7 + local21 >= Static129.clipRight) { + local66 = local7 + local21 + 1 - Static129.clipRight; local21 -= local66; local59 += local66; local57 += local66; @@ -151,9 +151,9 @@ public final class WorldMapFont { return; } if (this.aBoolean112) { - this.method1505(Static129.anIntArray297, arg4, arg3, local47, local53, local21, local27, local57, local59); + this.method1505(Static129.pixels, arg4, arg3, local47, local53, local21, local27, local57, local59); } else { - this.method1507(Static129.anIntArray297, arg4, arg3, local47, local53, local21, local27, local57, local59); + this.method1507(Static129.pixels, arg4, arg3, local47, local53, local21, local27, local57, local59); } } @@ -201,7 +201,7 @@ public final class WorldMapFont { public final void method1508(@OriginalArg(0) JagString arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3) { @Pc(5) int local5 = this.method1510(arg0) / 2; @Pc(8) int local8 = this.method1511(); - if (arg1 - local5 <= Static129.anInt3148 && (arg1 + local5 >= Static129.anInt3145 && (arg2 - local8 <= Static129.anInt3149 && arg2 >= 0))) { + if (arg1 - local5 <= Static129.clipRight && (arg1 + local5 >= Static129.clipLeft && (arg2 - local8 <= Static129.clipBottom && arg2 >= 0))) { this.method1502(arg0, arg1 - local5, arg2, arg3, true); } } diff --git a/client/src/main/java/client.java b/client/src/main/java/client.java index 424231d..b294578 100644 --- a/client/src/main/java/client.java +++ b/client/src/main/java/client.java @@ -840,18 +840,18 @@ public final class client extends GameShell { } else if (Static166.anInt4051 == 90) { if (Static167.aClass153_63.method4475()) { @Pc(951) Js5GlTextureProvider local951 = new Js5GlTextureProvider(Static195.aClass153_80, Static167.aClass153_63, Static209.aClass153_86, 20, !Static53.aBoolean99); - Rasteriser.method1914(local951); + Rasteriser.unpackTextures(local951); if (Static113.anInt4609 == 1) { - Rasteriser.method1911(0.9F); + Rasteriser.setBrightness(0.9F); } if (Static113.anInt4609 == 2) { - Rasteriser.method1911(0.8F); + Rasteriser.setBrightness(0.8F); } if (Static113.anInt4609 == 3) { - Rasteriser.method1911(0.7F); + Rasteriser.setBrightness(0.7F); } if (Static113.anInt4609 == 4) { - Rasteriser.method1911(0.6F); + Rasteriser.setBrightness(0.6F); } Static126.aClass100_602 = LocalizedText.MAINLOAD90B; Static166.anInt4051 = 100;