stride indexing: reconstruction mapped i*S+K -> i*(S+K); fixed aah collectWingPartCached (AIOOBE 18/17 crash on cosmetics backpack) + 34 sites in asl/aue/ahw/aul/up/uw/vh/ahn readers vs orig bytecode

This commit is contained in:
loki5512344 2026-10-04 13:34:39 +02:00
parent b9abbcd95d
commit 54065e9ce4
Signed by: boba
GPG key ID: 253067914055423B
9 changed files with 38 additions and 38 deletions

View file

@ -1823,7 +1823,7 @@ public class aah {
var12,
Math.abs(
-9.0F
+ var9[var10 * 5]
+ var9[var10 * (4) + 1]
* 16.0F
* 0.5F
)
@ -1943,9 +1943,9 @@ public class aah {
aik var14 = var10.corners[var13];
var2.transformPosition(var14.position.x, var14.position.y, var14.position.z, var4);
var11[var13 * (4)] = var4.x();
var11[var13 * 5] = -var4.y();
var11[var13 * 6] = var14.u;
var11[var13 * 7] = var14.v;
var11[var13 * (4) + 1] = -var4.y();
var11[var13 * (4) + 2] = var14.u;
var11[var13 * (4) + 3] = var14.v;
var12 += var4.z();
}

View file

@ -961,7 +961,7 @@ public final class ahn {
for (int var15 = 0; var15 < 4; var15++) {
int var16 = var15 * (4);
var12[var15 * (2)] = (var14[var16] - var19) * var18 + 160.0F;
var12[var15 * 3] = (
var12[var15 * (2) + 1] = (
var14[var16 + 1] - var20
)
* var18
@ -1067,11 +1067,11 @@ public final class ahn {
case 536920082:
default:
var8 = var0[var1 * (2)];
var9 = var0[var1 * 3];
var9 = var0[var1 * (2) + 1];
var10 = var0[var2 * (2)];
var11 = var0[var2 * 3];
var11 = var0[var2 * (2) + 1];
var12 = var0[var3 * (2)];
var13 = var0[var3 * 3];
var13 = var0[var3 * (2) + 1];
var14 = (var11 - var13) * (var8 - var12) + (var12 - var10) * (var9 - var13);
if (Math.abs(var14) < 1.0E-9F) {
var27 = 1261011979;

View file

@ -64,11 +64,11 @@ public final class ahw {
}
public float pivotY(int var1) {
return this.bonePivots[var1 * 4];
return this.bonePivots[var1 * (3) + 1];
}
public float pivotZ(int var1) {
return this.bonePivots[var1 * 5];
return this.bonePivots[var1 * (3) + 2];
}
public float restRotationX(int var1) {
@ -76,11 +76,11 @@ public final class ahw {
}
public float restRotationY(int var1) {
return this.boneRestRotation[var1 * 4];
return this.boneRestRotation[var1 * (3) + 1];
}
public float restRotationZ(int var1) {
return this.boneRestRotation[var1 * 5];
return this.boneRestRotation[var1 * (3) + 2];
}
public float[] meshOf(int var1) {
@ -174,11 +174,11 @@ public final class ahw {
var5[var14] = var11.parent == null
? -1: ((Integer)var9.getOrDefault(var11.parent.name, (1226890724 | -1226890725) + (1226890724 & -1226890725)));
var6[var14 * (3)] = var11.pivotX;
var6[var14 * 4] = var11.pivotY;
var6[var14 * 5] = var11.pivotZ;
var6[var14 * (3) + 1] = var11.pivotY;
var6[var14 * (3) + 2] = var11.pivotZ;
var7[var14 * (3)] = var11.getRotX();
var7[var14 * 4] = var11.getRotY();
var7[var14 * 5] = var11.getRotZ();
var7[var14 * (3) + 1] = var11.getRotY();
var7[var14 * (3) + 2] = var11.getRotZ();
var8[var14] = bakeMesh(var11);
}

View file

@ -82,15 +82,15 @@ public final class asl {
}
public float y(int var1) {
return this.values[var1 * 5];
return this.values[var1 * (4) + 1];
}
public float width(int var1) {
return this.values[var1 * 6];
return this.values[var1 * (4) + 2];
}
public float height(int var1) {
return this.values[var1 * 7];
return this.values[var1 * (4) + 3];
}
public boolean contains(int var1, double var2, double var4) {

View file

@ -93,15 +93,15 @@ public final class aue implements aqg {
}
public static int clusterTop(int var0) {
return CLUSTER_RECTS[var0 * 5];
return CLUSTER_RECTS[var0 * (4) + 1];
}
public static int clusterRight(int var0) {
return CLUSTER_RECTS[var0 * 6];
return CLUSTER_RECTS[var0 * (4) + 2];
}
public static int clusterBottom(int var0) {
return CLUSTER_RECTS[var0 * 7];
return CLUSTER_RECTS[var0 * (4) + 3];
}
public static int bandTop(int var0) {

View file

@ -778,7 +778,7 @@ public class aul {
var6 < 4;
var6++
) {
if (CORNER_RAYS[var6 * 4]
if (CORNER_RAYS[var6 * (3) + 1]
> 0.0F) {
includeNdcPoint(CORNER_NDC_X[var6], CORNER_NDC_Y[var6]);
}
@ -786,8 +786,8 @@ public class aul {
for (int var12 = 0; var12 < 4; var12++) {
int var7 = (var12 + (-774300175 ^ 774300176) + ((-774300175 & 774300176) << 1)) % ((-951096963 | 951096967) + (-951096963 & 951096967));
float var8 = CORNER_RAYS[var12 * 4];
float var9 = CORNER_RAYS[var7 * 4];
float var8 = CORNER_RAYS[var12 * (3) + 1];
float var9 = CORNER_RAYS[var7 * (3) + 1];
if ((var8 > 0.0F ? 1: (192060704 | -192060704) + (192060704 & -192060704))
!= (var9 > 0.0F ? 1: (143981919 ^ -143981919) + ((143981919 & -143981919) << 1))) {
float var10 = var8 - var9;

View file

@ -1931,8 +1931,8 @@ public final class up extends rm {
var21 = var17 / ((315736382 ^ -315736378) + ((315736382 & -315736378) << 1))
+ var1.nextInt(var17 / ((-1578003988 | 1578003990) + (-1578003988 & 1578003990)));
var22 = var18[var21 * (3)];
var24 = var18[var21 * 4];
var26 = var18[var21 * 5];
var24 = var18[var21 * (3) + 1];
var26 = var18[var21 * (3) + 2];
var28 = Math.sqrt(squaredDistance(var22, var24, var26, var8, var10, var12)) * var1.nextDouble(0.25, 0.5);
var30 = var1.nextDouble(Math.PI * 2);
var32 = var22 + Math.cos(var30) * var28 * 0.8;
@ -1979,15 +1979,15 @@ public final class up extends rm {
)
* 0.5F
+ (float)var3.nextDouble(-var4, var4);
var0[var5 * 4] = (
var0[var1 * 4]
+ var0[var2 * 4]
var0[var5 * (3) + 1] = (
var0[var1 * (3) + 1]
+ var0[var2 * (3) + 1]
)
* 0.5F
+ (float)var3.nextDouble(-var4, var4) * 0.4F;
var0[var5 * 5] = (
var0[var1 * 5]
+ var0[var2 * 5]
var0[var5 * (3) + 2] = (
var0[var1 * (3) + 2]
+ var0[var2 * (3) + 2]
)
* 0.5F
+ (float)var3.nextDouble(-var4, var4);
@ -3019,9 +3019,9 @@ public final class up extends rm {
for (int var18 = 0; var18 < var17; var18++) {
double var19 = var12.points[var18 * (3)] - var3.x;
double var21 = var12.points[var18 * 4]
double var21 = var12.points[var18 * (3) + 1]
- var3.y;
double var23 = var12.points[var18 * 5]
double var23 = var12.points[var18 * (3) + 2]
- var3.z;
double var25 = var12.points[(var18 + (-176658300 ^ 176658301) + ((-176658300 & 176658301) << 1))
* ((1941777564 ^ -1941777561) + ((1941777564 & -1941777561) << 1))]

View file

@ -299,7 +299,7 @@ final class uw {
return;
case -989213519:
var28 = var17[var27 * (2)];
var29 = var17[var27 * 3];
var29 = var17[var27 * (2) + 1];
var30 = var14 + var18 * var28 + var21 * var29;
var31 = var15 + var19 * var28 + var22 * var29;
var32 = var16 + var20 * var28 + var23 * var29;

View file

@ -178,9 +178,9 @@ final class vh {
case -1935575402:
var1.addVertex(
var2[var7 * (3)] + var4,
var2[var7 * 4]
var2[var7 * (3) + 1]
+ var5,
var2[var7 * 5]
var2[var7 * (3) + 2]
+ var6
)
.setColor((-1488599553 | 1488599552) + (-1488599553 & 1488599552));