Code:
if (j == 160) {
int k1 = stream.readUnsignedByteS();
int x = absX + (k1 >> 4 & 7);
int y = absY + (k1 & 7);
int l9 = stream.readUnsignedByteS();
int j12 = l9 >> 2;
int k14 = l9 & 3;
int j16 = anIntArray1177[j12];
int j17 = stream.readUnsignedWordA();
if (x >= 0 && y >= 0 && x < 103 && y < 103) {
int pointA = intGroundArray[plane][x][y];
int pointB = intGroundArray[plane][x + 1][y];
int pointC = intGroundArray[plane][x + 1][y + 1];
int pointD = intGroundArray[plane][x][y + 1];
if (j16 == 0) {
Object1 class10 = worldController.method296(plane, x, y);
if (class10 != null) {
int k21 = class10.uid >> 14 & 0x7fff;
if (j12 == 2) {
class10.aClass30_Sub2_Sub4_278 = new Animable_Sub5(
k21, 4 + k14, 2, pointB, pointC, pointA,
pointD, j17, false);
class10.aClass30_Sub2_Sub4_279 = new Animable_Sub5(
k21, k14 + 1 & 3, 2, pointB, pointC,
pointA, pointD, j17, false);
} else {
class10.aClass30_Sub2_Sub4_278 = new Animable_Sub5(
k21, k14, j12, pointB, pointC, pointA,
pointD, j17, false);
}
}
}
if (j16 == 1) {
Object2 class26 = worldController.method297(x, y, plane);
if (class26 != null) {
class26.aClass30_Sub2_Sub4_504 = new Animable_Sub5(
class26.uid >> 14 & 0x7fff, 0, 4, pointB,
pointC, pointA, pointD, j17, false);
}
}
if (j16 == 2) {
Object5 class28 = worldController.method298(x, y, plane);
if (j12 == 11) {
j12 = 10;
}
if (class28 != null) {
class28.aClass30_Sub2_Sub4_521 = new Animable_Sub5(
class28.uid >> 14 & 0x7fff, k14, j12, pointB,
pointC, pointA, pointD, j17, false);
}
}
if (j16 == 3) {
Object3 class49 = worldController.method299(y, x, plane);
if (class49 != null) {
class49.aClass30_Sub2_Sub4_814 = new Animable_Sub5(
class49.uid >> 14 & 0x7fff, k14, 22, pointB,
pointC, pointA, pointD, j17, false);
}
}
}
return;
}
This is for animated objects. So packet ID 160. Local Variable j17 is the animation ID.