mirror of
https://github.com/2006-Scape/2006Scape.git
synced 2026-07-03 08:39:04 +00:00
Make project setup easier with Maven (#411)
* Remove a bunch of .ideas and class files to see if it makes the setup easier * remove some .idea's and imkls * Remove a ton of .class files * [TASK] Switched to maven instead of gradle * [TASK] Added target to gitignore * Remove ignored files * [TASK] Fixed file_server source * [TASK] Fixed client source * [BUGFIX] Main Class * [BUGFIX] Fixed SLF4J * [TASK] Server Libs cleanup * Update setup guide/debug * Maven cli compile instructions * [TASK] Jar building * Update runServer and runFileServer.sh Co-authored-by: Sandro Coutinho <sandro@farrelltech.org>
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public class Animable extends NodeSub {
|
||||
|
||||
public void method443(int i, int j, int k, int l, int i1, int j1, int k1, int l1, int i2) {
|
||||
Model model = getRotatedModel();
|
||||
if (model != null) {
|
||||
modelHeight = model.modelHeight;
|
||||
model.method443(i, j, k, l, i1, j1, k1, l1, i2);
|
||||
}
|
||||
}
|
||||
|
||||
Model getRotatedModel() {
|
||||
return null;
|
||||
}
|
||||
|
||||
Animable() {
|
||||
modelHeight = 1000;
|
||||
}
|
||||
|
||||
Class33 aClass33Array1425[];
|
||||
public int modelHeight;
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class Animable_Sub3 extends Animable {
|
||||
|
||||
public Animable_Sub3(int i, int j, int l, int i1, int j1, int k1, int l1) {
|
||||
aBoolean1567 = false;
|
||||
aSpotAnim_1568 = SpotAnim.cache[i1];
|
||||
anInt1560 = i;
|
||||
anInt1561 = l1;
|
||||
anInt1562 = k1;
|
||||
anInt1563 = j1;
|
||||
anInt1564 = j + l;
|
||||
aBoolean1567 = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Model getRotatedModel() {
|
||||
Model model = aSpotAnim_1568.getModel();
|
||||
if (model == null) {
|
||||
return null;
|
||||
}
|
||||
int j = aSpotAnim_1568.aAnimation_407.anIntArray353[anInt1569];
|
||||
Model model_1 = new Model(true, Class36.method532(j), false, model);
|
||||
if (!aBoolean1567) {
|
||||
model_1.method469();
|
||||
model_1.method470(j);
|
||||
model_1.anIntArrayArray1658 = null;
|
||||
model_1.anIntArrayArray1657 = null;
|
||||
}
|
||||
if (aSpotAnim_1568.anInt410 != 128 || aSpotAnim_1568.anInt411 != 128) {
|
||||
model_1.method478(aSpotAnim_1568.anInt410, aSpotAnim_1568.anInt410, aSpotAnim_1568.anInt411);
|
||||
}
|
||||
if (aSpotAnim_1568.anInt412 != 0) {
|
||||
if (aSpotAnim_1568.anInt412 == 90) {
|
||||
model_1.method473();
|
||||
}
|
||||
if (aSpotAnim_1568.anInt412 == 180) {
|
||||
model_1.method473();
|
||||
model_1.method473();
|
||||
}
|
||||
if (aSpotAnim_1568.anInt412 == 270) {
|
||||
model_1.method473();
|
||||
model_1.method473();
|
||||
model_1.method473();
|
||||
}
|
||||
}
|
||||
model_1.method479(64 + aSpotAnim_1568.anInt413, 850 + aSpotAnim_1568.anInt414, -30, -50, -30, true);
|
||||
return model_1;
|
||||
}
|
||||
|
||||
public void method454(int i) {
|
||||
for (anInt1570 += i; anInt1570 > aSpotAnim_1568.aAnimation_407.method258(anInt1569); ) {
|
||||
anInt1570 -= aSpotAnim_1568.aAnimation_407.method258(anInt1569) + 1;
|
||||
anInt1569++;
|
||||
if (anInt1569 >= aSpotAnim_1568.aAnimation_407.anInt352 && (anInt1569 < 0 || anInt1569 >= aSpotAnim_1568.aAnimation_407.anInt352)) {
|
||||
anInt1569 = 0;
|
||||
aBoolean1567 = true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public final int anInt1560;
|
||||
public final int anInt1561;
|
||||
public final int anInt1562;
|
||||
public final int anInt1563;
|
||||
public final int anInt1564;
|
||||
public boolean aBoolean1567;
|
||||
private final SpotAnim aSpotAnim_1568;
|
||||
private int anInt1569;
|
||||
private int anInt1570;
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class Animable_Sub4 extends Animable {
|
||||
|
||||
public void method455(int i, int j, int k, int l) {
|
||||
if (!aBoolean1579) {
|
||||
double d = l - anInt1580;
|
||||
double d2 = j - anInt1581;
|
||||
double d3 = Math.sqrt(d * d + d2 * d2);
|
||||
aDouble1585 = anInt1580 + d * anInt1589 / d3;
|
||||
aDouble1586 = anInt1581 + d2 * anInt1589 / d3;
|
||||
aDouble1587 = anInt1582;
|
||||
}
|
||||
double d1 = anInt1572 + 1 - i;
|
||||
aDouble1574 = (l - aDouble1585) / d1;
|
||||
aDouble1575 = (j - aDouble1586) / d1;
|
||||
aDouble1576 = Math.sqrt(aDouble1574 * aDouble1574 + aDouble1575 * aDouble1575);
|
||||
if (!aBoolean1579) {
|
||||
aDouble1577 = -aDouble1576 * Math.tan(anInt1588 * 0.02454369D);
|
||||
}
|
||||
aDouble1578 = 2D * (k - aDouble1587 - aDouble1577 * d1) / (d1 * d1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Model getRotatedModel() {
|
||||
Model model = aSpotAnim_1592.getModel();
|
||||
if (model == null) {
|
||||
return null;
|
||||
}
|
||||
int j = -1;
|
||||
if (aSpotAnim_1592.aAnimation_407 != null) {
|
||||
j = aSpotAnim_1592.aAnimation_407.anIntArray353[anInt1593];
|
||||
}
|
||||
Model model_1 = new Model(true, Class36.method532(j), false, model);
|
||||
if (j != -1) {
|
||||
model_1.method469();
|
||||
model_1.method470(j);
|
||||
model_1.anIntArrayArray1658 = null;
|
||||
model_1.anIntArrayArray1657 = null;
|
||||
}
|
||||
if (aSpotAnim_1592.anInt410 != 128 || aSpotAnim_1592.anInt411 != 128) {
|
||||
model_1.method478(aSpotAnim_1592.anInt410, aSpotAnim_1592.anInt410, aSpotAnim_1592.anInt411);
|
||||
}
|
||||
model_1.method474(anInt1596);
|
||||
model_1.method479(64 + aSpotAnim_1592.anInt413, 850 + aSpotAnim_1592.anInt414, -30, -50, -30, true);
|
||||
return model_1;
|
||||
}
|
||||
|
||||
public Animable_Sub4(int i, int j, int l, int i1, int j1, int k1, int l1, int i2, int j2, int k2, int l2) {
|
||||
aBoolean1579 = false;
|
||||
aSpotAnim_1592 = SpotAnim.cache[l2];
|
||||
anInt1597 = k1;
|
||||
anInt1580 = j2;
|
||||
anInt1581 = i2;
|
||||
anInt1582 = l1;
|
||||
anInt1571 = l;
|
||||
anInt1572 = i1;
|
||||
anInt1588 = i;
|
||||
anInt1589 = j1;
|
||||
anInt1590 = k2;
|
||||
anInt1583 = j;
|
||||
aBoolean1579 = false;
|
||||
}
|
||||
|
||||
public void method456(int i) {
|
||||
aBoolean1579 = true;
|
||||
aDouble1585 += aDouble1574 * i;
|
||||
aDouble1586 += aDouble1575 * i;
|
||||
aDouble1587 += aDouble1577 * i + 0.5D * aDouble1578 * i * i;
|
||||
aDouble1577 += aDouble1578 * i;
|
||||
anInt1595 = (int) (Math.atan2(aDouble1574, aDouble1575) * 325.94900000000001D) + 1024 & 0x7ff;
|
||||
anInt1596 = (int) (Math.atan2(aDouble1577, aDouble1576) * 325.94900000000001D) & 0x7ff;
|
||||
if (aSpotAnim_1592.aAnimation_407 != null) {
|
||||
for (anInt1594 += i; anInt1594 > aSpotAnim_1592.aAnimation_407.method258(anInt1593);) {
|
||||
anInt1594 -= aSpotAnim_1592.aAnimation_407.method258(anInt1593) + 1;
|
||||
anInt1593++;
|
||||
if (anInt1593 >= aSpotAnim_1592.aAnimation_407.anInt352) {
|
||||
anInt1593 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public final int anInt1571;
|
||||
public final int anInt1572;
|
||||
private double aDouble1574;
|
||||
private double aDouble1575;
|
||||
private double aDouble1576;
|
||||
private double aDouble1577;
|
||||
private double aDouble1578;
|
||||
private boolean aBoolean1579;
|
||||
private final int anInt1580;
|
||||
private final int anInt1581;
|
||||
private final int anInt1582;
|
||||
public final int anInt1583;
|
||||
public double aDouble1585;
|
||||
public double aDouble1586;
|
||||
public double aDouble1587;
|
||||
private final int anInt1588;
|
||||
private final int anInt1589;
|
||||
public final int anInt1590;
|
||||
private final SpotAnim aSpotAnim_1592;
|
||||
private int anInt1593;
|
||||
private int anInt1594;
|
||||
public int anInt1595;
|
||||
private int anInt1596;
|
||||
public final int anInt1597;
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class Animable_Sub5 extends Animable {
|
||||
|
||||
@Override
|
||||
public Model getRotatedModel() {
|
||||
int j = -1;
|
||||
if (aAnimation_1607 != null) {
|
||||
int k = Game.loopCycle - anInt1608;
|
||||
if (k > 100 && aAnimation_1607.anInt356 > 0) {
|
||||
k = 100;
|
||||
}
|
||||
while (k > aAnimation_1607.method258(anInt1599)) {
|
||||
k -= aAnimation_1607.method258(anInt1599);
|
||||
anInt1599++;
|
||||
if (anInt1599 < aAnimation_1607.anInt352) {
|
||||
continue;
|
||||
}
|
||||
anInt1599 -= aAnimation_1607.anInt356;
|
||||
if (anInt1599 >= 0 && anInt1599 < aAnimation_1607.anInt352) {
|
||||
continue;
|
||||
}
|
||||
aAnimation_1607 = null;
|
||||
break;
|
||||
}
|
||||
anInt1608 = Game.loopCycle - k;
|
||||
if (aAnimation_1607 != null) {
|
||||
j = aAnimation_1607.anIntArray353[anInt1599];
|
||||
}
|
||||
}
|
||||
ObjectDef class46;
|
||||
if (anIntArray1600 != null) {
|
||||
class46 = method457();
|
||||
} else {
|
||||
class46 = ObjectDef.forID(anInt1610);
|
||||
}
|
||||
if (class46 == null) {
|
||||
return null;
|
||||
} else {
|
||||
return class46.method578(anInt1611, anInt1612, anInt1603, anInt1604, anInt1605, anInt1606, j);
|
||||
}
|
||||
}
|
||||
|
||||
private ObjectDef method457() {
|
||||
int i = -1;
|
||||
if (anInt1601 != -1) {
|
||||
VarBit varBit = VarBit.cache[anInt1601];
|
||||
int k = varBit.anInt648;
|
||||
int l = varBit.anInt649;
|
||||
int i1 = varBit.anInt650;
|
||||
int j1 = Game.anIntArray1232[i1 - l];
|
||||
i = clientInstance.variousSettings[k] >> l & j1;
|
||||
} else if (anInt1602 != -1) {
|
||||
i = clientInstance.variousSettings[anInt1602];
|
||||
}
|
||||
if (i < 0 || i >= anIntArray1600.length || anIntArray1600[i] == -1) {
|
||||
return null;
|
||||
} else {
|
||||
return ObjectDef.forID(anIntArray1600[i]);
|
||||
}
|
||||
}
|
||||
|
||||
public Animable_Sub5(int i, int j, int k, int l, int i1, int j1, int k1, int l1, boolean flag) {
|
||||
anInt1610 = i;
|
||||
anInt1611 = k;
|
||||
anInt1612 = j;
|
||||
anInt1603 = j1;
|
||||
anInt1604 = l;
|
||||
anInt1605 = i1;
|
||||
anInt1606 = k1;
|
||||
if (l1 != -1) {
|
||||
aAnimation_1607 = Animation.anims[l1];
|
||||
anInt1599 = 0;
|
||||
anInt1608 = Game.loopCycle;
|
||||
if (flag && aAnimation_1607.anInt356 != -1) {
|
||||
anInt1599 = (int) (Math.random() * aAnimation_1607.anInt352);
|
||||
anInt1608 -= (int) (Math.random() * aAnimation_1607.method258(anInt1599));
|
||||
}
|
||||
}
|
||||
ObjectDef class46 = ObjectDef.forID(anInt1610);
|
||||
anInt1601 = class46.anInt774;
|
||||
anInt1602 = class46.anInt749;
|
||||
anIntArray1600 = class46.childrenIDs;
|
||||
}
|
||||
|
||||
private int anInt1599;
|
||||
private final int[] anIntArray1600;
|
||||
private final int anInt1601;
|
||||
private final int anInt1602;
|
||||
private final int anInt1603;
|
||||
private final int anInt1604;
|
||||
private final int anInt1605;
|
||||
private final int anInt1606;
|
||||
private Animation aAnimation_1607;
|
||||
private int anInt1608;
|
||||
public static Game clientInstance;
|
||||
private final int anInt1610;
|
||||
private final int anInt1611;
|
||||
private final int anInt1612;
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public final class Animation {
|
||||
|
||||
public static void unpackConfig(StreamLoader streamLoader) {
|
||||
Stream stream = new Stream(streamLoader.getDataForName("seq.dat"));
|
||||
int length = stream.readUnsignedWord();
|
||||
if (anims == null) {
|
||||
anims = new Animation[length];
|
||||
}
|
||||
for (int j = 0; j < length; j++) {
|
||||
if (anims[j] == null) {
|
||||
anims[j] = new Animation();
|
||||
}
|
||||
anims[j].readValues(stream);
|
||||
}
|
||||
}
|
||||
|
||||
public int method258(int i) {
|
||||
int j = anIntArray355[i];
|
||||
if (j == 0) {
|
||||
Class36 class36 = Class36.method531(anIntArray353[i]);
|
||||
if (class36 != null) {
|
||||
j = anIntArray355[i] = class36.anInt636;
|
||||
}
|
||||
}
|
||||
if (j == 0) {
|
||||
j = 1;
|
||||
}
|
||||
return j;
|
||||
}
|
||||
|
||||
private void readValues(Stream stream) {
|
||||
do {
|
||||
int i = stream.readUnsignedByte();
|
||||
if (i == 0) {
|
||||
break;
|
||||
}
|
||||
if (i == 1) {
|
||||
anInt352 = stream.readUnsignedByte();
|
||||
anIntArray353 = new int[anInt352];
|
||||
anIntArray354 = new int[anInt352];
|
||||
anIntArray355 = new int[anInt352];
|
||||
for (int j = 0; j < anInt352; j++) {
|
||||
anIntArray353[j] = stream.readUnsignedWord();
|
||||
anIntArray354[j] = stream.readUnsignedWord();
|
||||
if (anIntArray354[j] == 65535) {
|
||||
anIntArray354[j] = -1;
|
||||
}
|
||||
anIntArray355[j] = stream.readUnsignedWord();
|
||||
}
|
||||
|
||||
} else if (i == 2) {
|
||||
anInt356 = stream.readUnsignedWord();
|
||||
} else if (i == 3) {
|
||||
int k = stream.readUnsignedByte();
|
||||
anIntArray357 = new int[k + 1];
|
||||
for (int l = 0; l < k; l++) {
|
||||
anIntArray357[l] = stream.readUnsignedByte();
|
||||
}
|
||||
|
||||
anIntArray357[k] = 0x98967f;
|
||||
} else if (i == 4) {
|
||||
aBoolean358 = true;
|
||||
} else if (i == 5) {
|
||||
anInt359 = stream.readUnsignedByte();
|
||||
} else if (i == 6) {
|
||||
anInt360 = stream.readUnsignedWord();
|
||||
} else if (i == 7) {
|
||||
anInt361 = stream.readUnsignedWord();
|
||||
} else if (i == 8) {
|
||||
anInt362 = stream.readUnsignedByte();
|
||||
} else if (i == 9) {
|
||||
anInt363 = stream.readUnsignedByte();
|
||||
} else if (i == 10) {
|
||||
anInt364 = stream.readUnsignedByte();
|
||||
} else if (i == 11) {
|
||||
anInt365 = stream.readUnsignedByte();
|
||||
} else if (i == 12) {
|
||||
stream.readDWord();
|
||||
} else {
|
||||
System.out.println("Error unrecognised seq config code: " + i);
|
||||
}
|
||||
} while (true);
|
||||
if (anInt352 == 0) {
|
||||
anInt352 = 1;
|
||||
anIntArray353 = new int[1];
|
||||
anIntArray353[0] = -1;
|
||||
anIntArray354 = new int[1];
|
||||
anIntArray354[0] = -1;
|
||||
anIntArray355 = new int[1];
|
||||
anIntArray355[0] = -1;
|
||||
}
|
||||
if (anInt363 == -1) {
|
||||
if (anIntArray357 != null) {
|
||||
anInt363 = 2;
|
||||
} else {
|
||||
anInt363 = 0;
|
||||
}
|
||||
}
|
||||
if (anInt364 == -1) {
|
||||
if (anIntArray357 != null) {
|
||||
anInt364 = 2;
|
||||
return;
|
||||
}
|
||||
anInt364 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
private Animation() {
|
||||
anInt356 = -1;
|
||||
aBoolean358 = false;
|
||||
anInt359 = 5;
|
||||
anInt360 = -1;
|
||||
anInt361 = -1;
|
||||
anInt362 = 99;
|
||||
anInt363 = -1;
|
||||
anInt364 = -1;
|
||||
anInt365 = 2;
|
||||
}
|
||||
|
||||
public static Animation anims[];
|
||||
public int anInt352;
|
||||
public int anIntArray353[];
|
||||
public int anIntArray354[];
|
||||
private int[] anIntArray355;
|
||||
public int anInt356;
|
||||
public int anIntArray357[];
|
||||
public boolean aBoolean358;
|
||||
public int anInt359;
|
||||
public int anInt360;
|
||||
public int anInt361;
|
||||
public int anInt362;
|
||||
public int anInt363;
|
||||
public int anInt364;
|
||||
public int anInt365;
|
||||
public static int anInt367;
|
||||
}
|
||||
@@ -0,0 +1,237 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public final class Background extends DrawingArea {
|
||||
|
||||
public Background(StreamLoader streamLoader, String s, int i) {
|
||||
Stream stream = new Stream(streamLoader.getDataForName(s + ".dat"));
|
||||
Stream stream_1 = new Stream(streamLoader.getDataForName("index.dat"));
|
||||
stream_1.currentOffset = stream.readUnsignedWord();
|
||||
anInt1456 = stream_1.readUnsignedWord();
|
||||
anInt1457 = stream_1.readUnsignedWord();
|
||||
int j = stream_1.readUnsignedByte();
|
||||
anIntArray1451 = new int[j];
|
||||
for (int k = 0; k < j - 1; k++) {
|
||||
anIntArray1451[k + 1] = stream_1.read3Bytes();
|
||||
}
|
||||
|
||||
for (int l = 0; l < i; l++) {
|
||||
stream_1.currentOffset += 2;
|
||||
stream.currentOffset += stream_1.readUnsignedWord() * stream_1.readUnsignedWord();
|
||||
stream_1.currentOffset++;
|
||||
}
|
||||
|
||||
anInt1454 = stream_1.readUnsignedByte();
|
||||
anInt1455 = stream_1.readUnsignedByte();
|
||||
anInt1452 = stream_1.readUnsignedWord();
|
||||
anInt1453 = stream_1.readUnsignedWord();
|
||||
int i1 = stream_1.readUnsignedByte();
|
||||
int j1 = anInt1452 * anInt1453;
|
||||
aByteArray1450 = new byte[j1];
|
||||
if (i1 == 0) {
|
||||
for (int k1 = 0; k1 < j1; k1++) {
|
||||
aByteArray1450[k1] = stream.readSignedByte();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
if (i1 == 1) {
|
||||
for (int l1 = 0; l1 < anInt1452; l1++) {
|
||||
for (int i2 = 0; i2 < anInt1453; i2++) {
|
||||
aByteArray1450[l1 + i2 * anInt1452] = stream.readSignedByte();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void method356() {
|
||||
anInt1456 /= 2;
|
||||
anInt1457 /= 2;
|
||||
byte abyte0[] = new byte[anInt1456 * anInt1457];
|
||||
int i = 0;
|
||||
for (int j = 0; j < anInt1453; j++) {
|
||||
for (int k = 0; k < anInt1452; k++) {
|
||||
abyte0[(k + anInt1454 >> 1) + (j + anInt1455 >> 1) * anInt1456] = aByteArray1450[i++];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
aByteArray1450 = abyte0;
|
||||
anInt1452 = anInt1456;
|
||||
anInt1453 = anInt1457;
|
||||
anInt1454 = 0;
|
||||
anInt1455 = 0;
|
||||
}
|
||||
|
||||
public void method357() {
|
||||
if (anInt1452 == anInt1456 && anInt1453 == anInt1457) {
|
||||
return;
|
||||
}
|
||||
byte abyte0[] = new byte[anInt1456 * anInt1457];
|
||||
int i = 0;
|
||||
for (int j = 0; j < anInt1453; j++) {
|
||||
for (int k = 0; k < anInt1452; k++) {
|
||||
abyte0[k + anInt1454 + (j + anInt1455) * anInt1456] = aByteArray1450[i++];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
aByteArray1450 = abyte0;
|
||||
anInt1452 = anInt1456;
|
||||
anInt1453 = anInt1457;
|
||||
anInt1454 = 0;
|
||||
anInt1455 = 0;
|
||||
}
|
||||
|
||||
public void method358() {
|
||||
byte abyte0[] = new byte[anInt1452 * anInt1453];
|
||||
int j = 0;
|
||||
for (int k = 0; k < anInt1453; k++) {
|
||||
for (int l = anInt1452 - 1; l >= 0; l--) {
|
||||
abyte0[j++] = aByteArray1450[l + k * anInt1452];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
aByteArray1450 = abyte0;
|
||||
anInt1454 = anInt1456 - anInt1452 - anInt1454;
|
||||
}
|
||||
|
||||
public void method359() {
|
||||
byte abyte0[] = new byte[anInt1452 * anInt1453];
|
||||
int i = 0;
|
||||
for (int j = anInt1453 - 1; j >= 0; j--) {
|
||||
for (int k = 0; k < anInt1452; k++) {
|
||||
abyte0[i++] = aByteArray1450[k + j * anInt1452];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
aByteArray1450 = abyte0;
|
||||
anInt1455 = anInt1457 - anInt1453 - anInt1455;
|
||||
}
|
||||
|
||||
public void method360(int i, int j, int k) {
|
||||
for (int i1 = 0; i1 < anIntArray1451.length; i1++) {
|
||||
int j1 = anIntArray1451[i1] >> 16 & 0xff;
|
||||
j1 += i;
|
||||
if (j1 < 0) {
|
||||
j1 = 0;
|
||||
} else if (j1 > 255) {
|
||||
j1 = 255;
|
||||
}
|
||||
int k1 = anIntArray1451[i1] >> 8 & 0xff;
|
||||
k1 += j;
|
||||
if (k1 < 0) {
|
||||
k1 = 0;
|
||||
} else if (k1 > 255) {
|
||||
k1 = 255;
|
||||
}
|
||||
int l1 = anIntArray1451[i1] & 0xff;
|
||||
l1 += k;
|
||||
if (l1 < 0) {
|
||||
l1 = 0;
|
||||
} else if (l1 > 255) {
|
||||
l1 = 255;
|
||||
}
|
||||
anIntArray1451[i1] = (j1 << 16) + (k1 << 8) + l1;
|
||||
}
|
||||
}
|
||||
|
||||
public void method361(int i, int k) {
|
||||
i += anInt1454;
|
||||
k += anInt1455;
|
||||
int l = i + k * DrawingArea.width;
|
||||
int i1 = 0;
|
||||
int j1 = anInt1453;
|
||||
int k1 = anInt1452;
|
||||
int l1 = DrawingArea.width - k1;
|
||||
int i2 = 0;
|
||||
if (k < DrawingArea.topY) {
|
||||
int j2 = DrawingArea.topY - k;
|
||||
j1 -= j2;
|
||||
k = DrawingArea.topY;
|
||||
i1 += j2 * k1;
|
||||
l += j2 * DrawingArea.width;
|
||||
}
|
||||
if (k + j1 > DrawingArea.bottomY) {
|
||||
j1 -= k + j1 - DrawingArea.bottomY;
|
||||
}
|
||||
if (i < DrawingArea.topX) {
|
||||
int k2 = DrawingArea.topX - i;
|
||||
k1 -= k2;
|
||||
i = DrawingArea.topX;
|
||||
i1 += k2;
|
||||
l += k2;
|
||||
i2 += k2;
|
||||
l1 += k2;
|
||||
}
|
||||
if (i + k1 > DrawingArea.bottomX) {
|
||||
int l2 = i + k1 - DrawingArea.bottomX;
|
||||
k1 -= l2;
|
||||
i2 += l2;
|
||||
l1 += l2;
|
||||
}
|
||||
if (!(k1 <= 0 || j1 <= 0)) {
|
||||
method362(j1, DrawingArea.pixels, aByteArray1450, l1, l, k1, i1, anIntArray1451, i2);
|
||||
}
|
||||
}
|
||||
|
||||
private void method362(int i, int ai[], byte abyte0[], int j, int k, int l, int i1, int ai1[], int j1) {
|
||||
int k1 = -(l >> 2);
|
||||
l = -(l & 3);
|
||||
for (int l1 = -i; l1 < 0; l1++) {
|
||||
for (int i2 = k1; i2 < 0; i2++) {
|
||||
byte byte1 = abyte0[i1++];
|
||||
if (byte1 != 0) {
|
||||
ai[k++] = ai1[byte1 & 0xff];
|
||||
} else {
|
||||
k++;
|
||||
}
|
||||
byte1 = abyte0[i1++];
|
||||
if (byte1 != 0) {
|
||||
ai[k++] = ai1[byte1 & 0xff];
|
||||
} else {
|
||||
k++;
|
||||
}
|
||||
byte1 = abyte0[i1++];
|
||||
if (byte1 != 0) {
|
||||
ai[k++] = ai1[byte1 & 0xff];
|
||||
} else {
|
||||
k++;
|
||||
}
|
||||
byte1 = abyte0[i1++];
|
||||
if (byte1 != 0) {
|
||||
ai[k++] = ai1[byte1 & 0xff];
|
||||
} else {
|
||||
k++;
|
||||
}
|
||||
}
|
||||
|
||||
for (int j2 = l; j2 < 0; j2++) {
|
||||
byte byte2 = abyte0[i1++];
|
||||
if (byte2 != 0) {
|
||||
ai[k++] = ai1[byte2 & 0xff];
|
||||
} else {
|
||||
k++;
|
||||
}
|
||||
}
|
||||
|
||||
k += j;
|
||||
i1 += j1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public byte aByteArray1450[];
|
||||
public final int[] anIntArray1451;
|
||||
public int anInt1452;
|
||||
public int anInt1453;
|
||||
public int anInt1454;
|
||||
public int anInt1455;
|
||||
public int anInt1456;
|
||||
private int anInt1457;
|
||||
}
|
||||
@@ -0,0 +1,961 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class Censor {
|
||||
|
||||
public static void loadConfig(StreamLoader streamLoader) {
|
||||
Stream stream = new Stream(streamLoader.getDataForName("fragmentsenc.txt"));
|
||||
Stream stream_1 = new Stream(streamLoader.getDataForName("badenc.txt"));
|
||||
Stream stream_2 = new Stream(streamLoader.getDataForName("domainenc.txt"));
|
||||
Stream stream_3 = new Stream(streamLoader.getDataForName("tldlist.txt"));
|
||||
readValues(stream, stream_1, stream_2, stream_3);
|
||||
}
|
||||
|
||||
private static void readValues(Stream stream, Stream stream_1, Stream stream_2, Stream stream_3) {
|
||||
readBadEnc(stream_1);
|
||||
readDomainEnc(stream_2);
|
||||
readFragmentsEnc(stream);
|
||||
readTldList(stream_3);
|
||||
}
|
||||
|
||||
private static void readTldList(Stream stream) {
|
||||
int i = stream.readDWord();
|
||||
aCharArrayArray624 = new char[i][];
|
||||
anIntArray625 = new int[i];
|
||||
for (int j = 0; j < i; j++) {
|
||||
anIntArray625[j] = stream.readUnsignedByte();
|
||||
char ac[] = new char[stream.readUnsignedByte()];
|
||||
for (int k = 0; k < ac.length; k++) {
|
||||
ac[k] = (char) stream.readUnsignedByte();
|
||||
}
|
||||
|
||||
aCharArrayArray624[j] = ac;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static void readBadEnc(Stream stream) {
|
||||
int j = stream.readDWord();
|
||||
aCharArrayArray621 = new char[j][];
|
||||
aByteArrayArrayArray622 = new byte[j][][];
|
||||
method493(stream, aCharArrayArray621, aByteArrayArrayArray622);
|
||||
}
|
||||
|
||||
private static void readDomainEnc(Stream stream) {
|
||||
int i = stream.readDWord();
|
||||
aCharArrayArray623 = new char[i][];
|
||||
method494(aCharArrayArray623, stream);
|
||||
}
|
||||
|
||||
private static void readFragmentsEnc(Stream stream) {
|
||||
anIntArray620 = new int[stream.readDWord()];
|
||||
for (int i = 0; i < anIntArray620.length; i++) {
|
||||
anIntArray620[i] = stream.readUnsignedWord();
|
||||
}
|
||||
}
|
||||
|
||||
private static void method493(Stream stream, char ac[][], byte abyte0[][][]) {
|
||||
for (int j = 0; j < ac.length; j++) {
|
||||
char ac1[] = new char[stream.readUnsignedByte()];
|
||||
for (int k = 0; k < ac1.length; k++) {
|
||||
ac1[k] = (char) stream.readUnsignedByte();
|
||||
}
|
||||
|
||||
ac[j] = ac1;
|
||||
byte abyte1[][] = new byte[stream.readUnsignedByte()][2];
|
||||
for (int l = 0; l < abyte1.length; l++) {
|
||||
abyte1[l][0] = (byte) stream.readUnsignedByte();
|
||||
abyte1[l][1] = (byte) stream.readUnsignedByte();
|
||||
}
|
||||
|
||||
if (abyte1.length > 0) {
|
||||
abyte0[j] = abyte1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static void method494(char ac[][], Stream stream) {
|
||||
for (int j = 0; j < ac.length; j++) {
|
||||
char ac1[] = new char[stream.readUnsignedByte()];
|
||||
for (int k = 0; k < ac1.length; k++) {
|
||||
ac1[k] = (char) stream.readUnsignedByte();
|
||||
}
|
||||
|
||||
ac[j] = ac1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static void method495(char ac[]) {
|
||||
int i = 0;
|
||||
for (int j = 0; j < ac.length; j++) {
|
||||
if (method496(ac[j])) {
|
||||
ac[i] = ac[j];
|
||||
} else {
|
||||
ac[i] = ' ';
|
||||
}
|
||||
if (i == 0 || ac[i] != ' ' || ac[i - 1] != ' ') {
|
||||
i++;
|
||||
}
|
||||
}
|
||||
for (int k = i; k < ac.length; k++) {
|
||||
ac[k] = ' ';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static boolean method496(char c) {
|
||||
return c >= ' ' && c <= '\177' || c == ' ' || c == '\n' || c == '\t' || c == '\243' || c == '\u20AC';
|
||||
}
|
||||
|
||||
public static String doCensor(String s) {
|
||||
System.currentTimeMillis();
|
||||
char ac[] = s.toCharArray();
|
||||
method495(ac);
|
||||
String s1 = new String(ac).trim();
|
||||
ac = s1.toLowerCase().toCharArray();
|
||||
String s2 = s1.toLowerCase();
|
||||
method505(ac);
|
||||
method500(ac);
|
||||
method501(ac);
|
||||
method514(ac);
|
||||
for (String exception : exceptions) {
|
||||
for (int k = -1; (k = s2.indexOf(exception, k + 1)) != -1;) {
|
||||
char ac1[] = exception.toCharArray();
|
||||
System.arraycopy(ac1, 0, ac, k, ac1.length);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
method498(s1.toCharArray(), ac);
|
||||
method499(ac);
|
||||
System.currentTimeMillis();
|
||||
return s; // xxx chat filter, return s to avoid new String(ac).trim()
|
||||
}
|
||||
|
||||
private static void method498(char ac[], char ac1[]) {
|
||||
for (int j = 0; j < ac.length; j++) {
|
||||
if (ac1[j] != '*' && isUpperCaseLetter(ac[j])) {
|
||||
ac1[j] = ac[j];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void method499(char ac[]) {
|
||||
boolean flag = true;
|
||||
for (int j = 0; j < ac.length; j++) {
|
||||
char c = ac[j];
|
||||
if (isLetter(c)) {
|
||||
if (flag) {
|
||||
if (isLowerCaseLetter(c)) {
|
||||
flag = false;
|
||||
}
|
||||
} else if (isUpperCaseLetter(c)) {
|
||||
ac[j] = (char) (c + 97 - 65);
|
||||
}
|
||||
} else {
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void method500(char ac[]) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
for (int j = aCharArrayArray621.length - 1; j >= 0; j--) {
|
||||
method509(aByteArrayArrayArray622[j], ac, aCharArrayArray621[j]);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private static void method501(char ac[]) {
|
||||
char ac1[] = ac.clone();
|
||||
char ac2[] = {'(', 'a', ')'};
|
||||
method509(null, ac1, ac2);
|
||||
char ac3[] = ac.clone();
|
||||
char ac4[] = {'d', 'o', 't'};
|
||||
method509(null, ac3, ac4);
|
||||
for (int i = aCharArrayArray623.length - 1; i >= 0; i--) {
|
||||
method502(ac, aCharArrayArray623[i], ac3, ac1);
|
||||
}
|
||||
}
|
||||
|
||||
private static void method502(char ac[], char ac1[], char ac2[], char ac3[]) {
|
||||
if (ac1.length > ac.length) {
|
||||
return;
|
||||
}
|
||||
int j;
|
||||
for (int k = 0; k <= ac.length - ac1.length; k += j) {
|
||||
int l = k;
|
||||
int i1 = 0;
|
||||
j = 1;
|
||||
while (l < ac.length) {
|
||||
int j1;
|
||||
char c = ac[l];
|
||||
char c1 = '\0';
|
||||
if (l + 1 < ac.length) {
|
||||
c1 = ac[l + 1];
|
||||
}
|
||||
if (i1 < ac1.length && (j1 = method511(c, ac1[i1], c1)) > 0) {
|
||||
l += j1;
|
||||
i1++;
|
||||
continue;
|
||||
}
|
||||
if (i1 == 0) {
|
||||
break;
|
||||
}
|
||||
if ((j1 = method511(c, ac1[i1 - 1], c1)) > 0) {
|
||||
l += j1;
|
||||
if (i1 == 1) {
|
||||
j++;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (i1 >= ac1.length || !method517(c)) {
|
||||
break;
|
||||
}
|
||||
l++;
|
||||
}
|
||||
if (i1 >= ac1.length) {
|
||||
boolean flag1 = false;
|
||||
int k1 = method503(ac, ac3, k);
|
||||
int l1 = method504(ac2, l - 1, ac);
|
||||
if (k1 > 2 || l1 > 2) {
|
||||
flag1 = true;
|
||||
}
|
||||
if (flag1) {
|
||||
for (int i2 = k; i2 < l; i2++) {
|
||||
ac[i2] = '*';
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static int method503(char ac[], char ac1[], int j) {
|
||||
if (j == 0) {
|
||||
return 2;
|
||||
}
|
||||
for (int k = j - 1; k >= 0; k--) {
|
||||
if (!method517(ac[k])) {
|
||||
break;
|
||||
}
|
||||
if (ac[k] == '@') {
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
int l = 0;
|
||||
for (int i1 = j - 1; i1 >= 0; i1--) {
|
||||
if (!method517(ac1[i1])) {
|
||||
break;
|
||||
}
|
||||
if (ac1[i1] == '*') {
|
||||
l++;
|
||||
}
|
||||
}
|
||||
|
||||
if (l >= 3) {
|
||||
return 4;
|
||||
}
|
||||
return !method517(ac[j - 1]) ? 0 : 1;
|
||||
}
|
||||
|
||||
private static int method504(char ac[], int i, char ac1[]) {
|
||||
if (i + 1 == ac1.length) {
|
||||
return 2;
|
||||
}
|
||||
for (int j = i + 1; j < ac1.length; j++) {
|
||||
if (!method517(ac1[j])) {
|
||||
break;
|
||||
}
|
||||
if (ac1[j] == '.' || ac1[j] == ',') {
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
int k = 0;
|
||||
for (int l = i + 1; l < ac1.length; l++) {
|
||||
if (!method517(ac[l])) {
|
||||
break;
|
||||
}
|
||||
if (ac[l] == '*') {
|
||||
k++;
|
||||
}
|
||||
}
|
||||
|
||||
if (k >= 3) {
|
||||
return 4;
|
||||
}
|
||||
return !method517(ac1[i + 1]) ? 0 : 1;
|
||||
}
|
||||
|
||||
private static void method505(char ac[]) {
|
||||
char ac1[] = ac.clone();
|
||||
char ac2[] = {'d', 'o', 't'};
|
||||
method509(null, ac1, ac2);
|
||||
char ac3[] = ac.clone();
|
||||
char ac4[] = {'s', 'l', 'a', 's', 'h'};
|
||||
method509(null, ac3, ac4);
|
||||
for (int i = 0; i < aCharArrayArray624.length; i++) {
|
||||
method506(ac3, aCharArrayArray624[i], anIntArray625[i], ac1, ac);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static void method506(char ac[], char ac1[], int i, char ac2[], char ac3[]) {
|
||||
if (ac1.length > ac3.length) {
|
||||
return;
|
||||
}
|
||||
int j;
|
||||
for (int k = 0; k <= ac3.length - ac1.length; k += j) {
|
||||
int l = k;
|
||||
int i1 = 0;
|
||||
j = 1;
|
||||
while (l < ac3.length) {
|
||||
int j1;
|
||||
char c = ac3[l];
|
||||
char c1 = '\0';
|
||||
if (l + 1 < ac3.length) {
|
||||
c1 = ac3[l + 1];
|
||||
}
|
||||
if (i1 < ac1.length && (j1 = method511(c, ac1[i1], c1)) > 0) {
|
||||
l += j1;
|
||||
i1++;
|
||||
continue;
|
||||
}
|
||||
if (i1 == 0) {
|
||||
break;
|
||||
}
|
||||
if ((j1 = method511(c, ac1[i1 - 1], c1)) > 0) {
|
||||
l += j1;
|
||||
if (i1 == 1) {
|
||||
j++;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (i1 >= ac1.length || !method517(c)) {
|
||||
break;
|
||||
}
|
||||
l++;
|
||||
}
|
||||
if (i1 >= ac1.length) {
|
||||
boolean flag1 = false;
|
||||
int k1 = method507(ac3, k, ac2);
|
||||
int l1 = method508(ac3, ac, l - 1);
|
||||
if (i == 1 && k1 > 0 && l1 > 0) {
|
||||
flag1 = true;
|
||||
}
|
||||
if (i == 2 && (k1 > 2 && l1 > 0 || k1 > 0 && l1 > 2)) {
|
||||
flag1 = true;
|
||||
}
|
||||
if (i == 3 && k1 > 0 && l1 > 2) {
|
||||
flag1 = true;
|
||||
}
|
||||
if (flag1) {
|
||||
int i2 = k;
|
||||
int j2 = l - 1;
|
||||
if (k1 > 2) {
|
||||
if (k1 == 4) {
|
||||
boolean flag2 = false;
|
||||
for (int l2 = i2 - 1; l2 >= 0; l2--) {
|
||||
if (flag2) {
|
||||
if (ac2[l2] != '*') {
|
||||
break;
|
||||
}
|
||||
i2 = l2;
|
||||
} else if (ac2[l2] == '*') {
|
||||
i2 = l2;
|
||||
flag2 = true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
boolean flag3 = false;
|
||||
for (int i3 = i2 - 1; i3 >= 0; i3--) {
|
||||
if (flag3) {
|
||||
if (method517(ac3[i3])) {
|
||||
break;
|
||||
}
|
||||
i2 = i3;
|
||||
} else if (!method517(ac3[i3])) {
|
||||
flag3 = true;
|
||||
i2 = i3;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (l1 > 2) {
|
||||
if (l1 == 4) {
|
||||
boolean flag4 = false;
|
||||
for (int j3 = j2 + 1; j3 < ac3.length; j3++) {
|
||||
if (flag4) {
|
||||
if (ac[j3] != '*') {
|
||||
break;
|
||||
}
|
||||
j2 = j3;
|
||||
} else if (ac[j3] == '*') {
|
||||
j2 = j3;
|
||||
flag4 = true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
boolean flag5 = false;
|
||||
for (int k3 = j2 + 1; k3 < ac3.length; k3++) {
|
||||
if (flag5) {
|
||||
if (method517(ac3[k3])) {
|
||||
break;
|
||||
}
|
||||
j2 = k3;
|
||||
} else if (!method517(ac3[k3])) {
|
||||
flag5 = true;
|
||||
j2 = k3;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
for (int k2 = i2; k2 <= j2; k2++) {
|
||||
ac3[k2] = '*';
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static int method507(char ac[], int j, char ac1[]) {
|
||||
if (j == 0) {
|
||||
return 2;
|
||||
}
|
||||
for (int k = j - 1; k >= 0; k--) {
|
||||
if (!method517(ac[k])) {
|
||||
break;
|
||||
}
|
||||
if (ac[k] == ',' || ac[k] == '.') {
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
int l = 0;
|
||||
for (int i1 = j - 1; i1 >= 0; i1--) {
|
||||
if (!method517(ac1[i1])) {
|
||||
break;
|
||||
}
|
||||
if (ac1[i1] == '*') {
|
||||
l++;
|
||||
}
|
||||
}
|
||||
if (l >= 3) {
|
||||
return 4;
|
||||
}
|
||||
return !method517(ac[j - 1]) ? 0 : 1;
|
||||
}
|
||||
|
||||
private static int method508(char ac[], char ac1[], int i) {
|
||||
if (i + 1 == ac.length) {
|
||||
return 2;
|
||||
}
|
||||
for (int j = i + 1; j < ac.length; j++) {
|
||||
if (!method517(ac[j])) {
|
||||
break;
|
||||
}
|
||||
if (ac[j] == '\\' || ac[j] == '/') {
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
int k = 0;
|
||||
for (int l = i + 1; l < ac.length; l++) {
|
||||
if (!method517(ac1[l])) {
|
||||
break;
|
||||
}
|
||||
if (ac1[l] == '*') {
|
||||
k++;
|
||||
}
|
||||
}
|
||||
|
||||
if (k >= 5) {
|
||||
return 4;
|
||||
}
|
||||
return !method517(ac[i + 1]) ? 0 : 1;
|
||||
}
|
||||
|
||||
private static void method509(byte abyte0[][], char ac[], char ac1[]) {
|
||||
if (ac1.length > ac.length) {
|
||||
return;
|
||||
}
|
||||
int j;
|
||||
for (int k = 0; k <= ac.length - ac1.length; k += j) {
|
||||
int l = k;
|
||||
int i1 = 0;
|
||||
int j1 = 0;
|
||||
j = 1;
|
||||
boolean flag1 = false;
|
||||
boolean flag2 = false;
|
||||
boolean flag3 = false;
|
||||
while (l < ac.length && (!flag2 || !flag3)) {
|
||||
int k1;
|
||||
char c = ac[l];
|
||||
char c2 = '\0';
|
||||
if (l + 1 < ac.length) {
|
||||
c2 = ac[l + 1];
|
||||
}
|
||||
if (i1 < ac1.length && (k1 = method512(c2, c, ac1[i1])) > 0) {
|
||||
if (k1 == 1 && isDigit(c)) {
|
||||
flag2 = true;
|
||||
}
|
||||
if (k1 == 2 && (isDigit(c) || isDigit(c2))) {
|
||||
flag2 = true;
|
||||
}
|
||||
l += k1;
|
||||
i1++;
|
||||
continue;
|
||||
}
|
||||
if (i1 == 0) {
|
||||
break;
|
||||
}
|
||||
if ((k1 = method512(c2, c, ac1[i1 - 1])) > 0) {
|
||||
l += k1;
|
||||
if (i1 == 1) {
|
||||
j++;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (i1 >= ac1.length || !method518(c)) {
|
||||
break;
|
||||
}
|
||||
if (method517(c) && c != '\'') {
|
||||
flag1 = true;
|
||||
}
|
||||
if (isDigit(c)) {
|
||||
flag3 = true;
|
||||
}
|
||||
l++;
|
||||
if (++j1 * 100 / (l - k) > 90) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i1 >= ac1.length && (!flag2 || !flag3)) {
|
||||
boolean flag4 = true;
|
||||
if (!flag1) {
|
||||
char c1 = ' ';
|
||||
if (k - 1 >= 0) {
|
||||
c1 = ac[k - 1];
|
||||
}
|
||||
char c3 = ' ';
|
||||
if (l < ac.length) {
|
||||
c3 = ac[l];
|
||||
}
|
||||
byte byte0 = method513(c1);
|
||||
byte byte1 = method513(c3);
|
||||
if (abyte0 != null && method510(byte0, abyte0, byte1)) {
|
||||
flag4 = false;
|
||||
}
|
||||
} else {
|
||||
boolean flag5 = false;
|
||||
boolean flag6 = false;
|
||||
if (k - 1 < 0 || method517(ac[k - 1]) && ac[k - 1] != '\'') {
|
||||
flag5 = true;
|
||||
}
|
||||
if (l >= ac.length || method517(ac[l]) && ac[l] != '\'') {
|
||||
flag6 = true;
|
||||
}
|
||||
if (!flag5 || !flag6) {
|
||||
boolean flag7 = false;
|
||||
int k2 = k - 2;
|
||||
if (flag5) {
|
||||
k2 = k;
|
||||
}
|
||||
for (; !flag7 && k2 < l; k2++) {
|
||||
if (k2 >= 0 && (!method517(ac[k2]) || ac[k2] == '\'')) {
|
||||
char ac2[] = new char[3];
|
||||
int j3;
|
||||
for (j3 = 0; j3 < 3; j3++) {
|
||||
if (k2 + j3 >= ac.length || method517(ac[k2 + j3]) && ac[k2 + j3] != '\'') {
|
||||
break;
|
||||
}
|
||||
ac2[j3] = ac[k2 + j3];
|
||||
}
|
||||
|
||||
boolean flag8 = true;
|
||||
if (j3 == 0) {
|
||||
flag8 = false;
|
||||
}
|
||||
if (j3 < 3 && k2 - 1 >= 0 && (!method517(ac[k2 - 1]) || ac[k2 - 1] == '\'')) {
|
||||
flag8 = false;
|
||||
}
|
||||
if (flag8 && !method523(ac2)) {
|
||||
flag7 = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!flag7) {
|
||||
flag4 = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (flag4) {
|
||||
int l1 = 0;
|
||||
int i2 = 0;
|
||||
int j2 = -1;
|
||||
for (int l2 = k; l2 < l; l2++) {
|
||||
if (isDigit(ac[l2])) {
|
||||
l1++;
|
||||
} else if (isLetter(ac[l2])) {
|
||||
i2++;
|
||||
j2 = l2;
|
||||
}
|
||||
}
|
||||
|
||||
if (j2 > -1) {
|
||||
l1 -= l - 1 - j2;
|
||||
}
|
||||
if (l1 <= i2) {
|
||||
for (int i3 = k; i3 < l; i3++) {
|
||||
ac[i3] = '*';
|
||||
}
|
||||
|
||||
} else {
|
||||
j = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static boolean method510(byte byte0, byte abyte0[][], byte byte2) {
|
||||
int i = 0;
|
||||
if (abyte0[i][0] == byte0 && abyte0[i][1] == byte2) {
|
||||
return true;
|
||||
}
|
||||
int j = abyte0.length - 1;
|
||||
if (abyte0[j][0] == byte0 && abyte0[j][1] == byte2) {
|
||||
return true;
|
||||
}
|
||||
do {
|
||||
int k = (i + j) / 2;
|
||||
if (abyte0[k][0] == byte0 && abyte0[k][1] == byte2) {
|
||||
return true;
|
||||
}
|
||||
if (byte0 < abyte0[k][0] || byte0 == abyte0[k][0] && byte2 < abyte0[k][1]) {
|
||||
j = k;
|
||||
} else {
|
||||
i = k;
|
||||
}
|
||||
} while (i != j && i + 1 != j);
|
||||
return false;
|
||||
}
|
||||
|
||||
private static int method511(char c, char c1, char c2) {
|
||||
if (c1 == c) {
|
||||
return 1;
|
||||
}
|
||||
if (c1 == 'o' && c == '0') {
|
||||
return 1;
|
||||
}
|
||||
if (c1 == 'o' && c == '(' && c2 == ')') {
|
||||
return 2;
|
||||
}
|
||||
if (c1 == 'c' && (c == '(' || c == '<' || c == '[')) {
|
||||
return 1;
|
||||
}
|
||||
if (c1 == 'e' && c == '\u20AC') {
|
||||
return 1;
|
||||
}
|
||||
if (c1 == 's' && c == '$') {
|
||||
return 1;
|
||||
}
|
||||
return c1 != 'l' || c != 'i' ? 0 : 1;
|
||||
}
|
||||
|
||||
private static int method512(char c, char c1, char c2) {
|
||||
if (c2 == c1) {
|
||||
return 1;
|
||||
}
|
||||
if (c2 >= 'a' && c2 <= 'm') {
|
||||
if (c2 == 'a') {
|
||||
if (c1 == '4' || c1 == '@' || c1 == '^') {
|
||||
return 1;
|
||||
}
|
||||
return c1 != '/' || c != '\\' ? 0 : 2;
|
||||
}
|
||||
if (c2 == 'b') {
|
||||
if (c1 == '6' || c1 == '8') {
|
||||
return 1;
|
||||
}
|
||||
return (c1 != '1' || c != '3') && (c1 != 'i' || c != '3') ? 0 : 2;
|
||||
}
|
||||
if (c2 == 'c') {
|
||||
return c1 != '(' && c1 != '<' && c1 != '{' && c1 != '[' ? 0 : 1;
|
||||
}
|
||||
if (c2 == 'd') {
|
||||
return (c1 != '[' || c != ')') && (c1 != 'i' || c != ')') ? 0 : 2;
|
||||
}
|
||||
if (c2 == 'e') {
|
||||
return c1 != '3' && c1 != '\u20AC' ? 0 : 1;
|
||||
}
|
||||
if (c2 == 'f') {
|
||||
if (c1 == 'p' && c == 'h') {
|
||||
return 2;
|
||||
}
|
||||
return c1 != '\243' ? 0 : 1;
|
||||
}
|
||||
if (c2 == 'g') {
|
||||
return c1 != '9' && c1 != '6' && c1 != 'q' ? 0 : 1;
|
||||
}
|
||||
if (c2 == 'h') {
|
||||
return c1 != '#' ? 0 : 1;
|
||||
}
|
||||
if (c2 == 'i') {
|
||||
return c1 != 'y' && c1 != 'l' && c1 != 'j' && c1 != '1' && c1 != '!' && c1 != ':' && c1 != ';' && c1 != '|' ? 0 : 1;
|
||||
}
|
||||
if (c2 == 'j') {
|
||||
return 0;
|
||||
}
|
||||
if (c2 == 'k') {
|
||||
return 0;
|
||||
}
|
||||
if (c2 == 'l') {
|
||||
return c1 != '1' && c1 != '|' && c1 != 'i' ? 0 : 1;
|
||||
}
|
||||
if (c2 == 'm') {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
if (c2 >= 'n' && c2 <= 'z') {
|
||||
if (c2 == 'n') {
|
||||
return 0;
|
||||
}
|
||||
if (c2 == 'o') {
|
||||
if (c1 == '0' || c1 == '*') {
|
||||
return 1;
|
||||
}
|
||||
return (c1 != '(' || c != ')') && (c1 != '[' || c != ']') && (c1 != '{' || c != '}') && (c1 != '<' || c != '>') ? 0 : 2;
|
||||
}
|
||||
if (c2 == 'p') {
|
||||
return 0;
|
||||
}
|
||||
if (c2 == 'q') {
|
||||
return 0;
|
||||
}
|
||||
if (c2 == 'r') {
|
||||
return 0;
|
||||
}
|
||||
if (c2 == 's') {
|
||||
return c1 != '5' && c1 != 'z' && c1 != '$' && c1 != '2' ? 0 : 1;
|
||||
}
|
||||
if (c2 == 't') {
|
||||
return c1 != '7' && c1 != '+' ? 0 : 1;
|
||||
}
|
||||
if (c2 == 'u') {
|
||||
if (c1 == 'v') {
|
||||
return 1;
|
||||
}
|
||||
return (c1 != '\\' || c != '/') && (c1 != '\\' || c != '|') && (c1 != '|' || c != '/') ? 0 : 2;
|
||||
}
|
||||
if (c2 == 'v') {
|
||||
return (c1 != '\\' || c != '/') && (c1 != '\\' || c != '|') && (c1 != '|' || c != '/') ? 0 : 2;
|
||||
}
|
||||
if (c2 == 'w') {
|
||||
return c1 != 'v' || c != 'v' ? 0 : 2;
|
||||
}
|
||||
if (c2 == 'x') {
|
||||
return (c1 != ')' || c != '(') && (c1 != '}' || c != '{') && (c1 != ']' || c != '[') && (c1 != '>' || c != '<') ? 0 : 2;
|
||||
}
|
||||
if (c2 == 'y') {
|
||||
return 0;
|
||||
}
|
||||
if (c2 == 'z') {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
if (c2 >= '0' && c2 <= '9') {
|
||||
if (c2 == '0') {
|
||||
if (c1 == 'o' || c1 == 'O') {
|
||||
return 1;
|
||||
}
|
||||
return (c1 != '(' || c != ')') && (c1 != '{' || c != '}') && (c1 != '[' || c != ']') ? 0 : 2;
|
||||
}
|
||||
if (c2 == '1') {
|
||||
return c1 != 'l' ? 0 : 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
if (c2 == ',') {
|
||||
return c1 != '.' ? 0 : 1;
|
||||
}
|
||||
if (c2 == '.') {
|
||||
return c1 != ',' ? 0 : 1;
|
||||
}
|
||||
if (c2 == '!') {
|
||||
return c1 != 'i' ? 0 : 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
private static byte method513(char c) {
|
||||
if (c >= 'a' && c <= 'z') {
|
||||
return (byte) (c - 97 + 1);
|
||||
}
|
||||
if (c == '\'') {
|
||||
return 28;
|
||||
}
|
||||
if (c >= '0' && c <= '9') {
|
||||
return (byte) (c - 48 + 29);
|
||||
} else {
|
||||
return 27;
|
||||
}
|
||||
}
|
||||
|
||||
private static void method514(char ac[]) {
|
||||
int j;
|
||||
int k = 0;
|
||||
int l = 0;
|
||||
int i1 = 0;
|
||||
while ((j = method515(ac, k)) != -1) {
|
||||
boolean flag = false;
|
||||
for (int j1 = k; j1 >= 0 && j1 < j && !flag; j1++) {
|
||||
if (!method517(ac[j1]) && !method518(ac[j1])) {
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (flag) {
|
||||
l = 0;
|
||||
}
|
||||
if (l == 0) {
|
||||
i1 = j;
|
||||
}
|
||||
k = method516(ac, j);
|
||||
int k1 = 0;
|
||||
for (int l1 = j; l1 < k; l1++) {
|
||||
k1 = k1 * 10 + ac[l1] - 48;
|
||||
}
|
||||
|
||||
if (k1 > 255 || k - j > 8) {
|
||||
l = 0;
|
||||
} else {
|
||||
l++;
|
||||
}
|
||||
if (l == 4) {
|
||||
for (int i2 = i1; i2 < k; i2++) {
|
||||
ac[i2] = '*';
|
||||
}
|
||||
|
||||
l = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static int method515(char ac[], int i) {
|
||||
for (int k = i; k < ac.length && k >= 0; k++) {
|
||||
if (ac[k] >= '0' && ac[k] <= '9') {
|
||||
return k;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
private static int method516(char ac[], int j) {
|
||||
for (int k = j; k < ac.length && k >= 0; k++) {
|
||||
if (ac[k] < '0' || ac[k] > '9') {
|
||||
return k;
|
||||
}
|
||||
}
|
||||
return ac.length;
|
||||
}
|
||||
|
||||
private static boolean method517(char c) {
|
||||
return !isLetter(c) && !isDigit(c);
|
||||
}
|
||||
|
||||
private static boolean method518(char c) {
|
||||
return c < 'a' || c > 'z' || c == 'v' || c == 'x' || c == 'j' || c == 'q' || c == 'z';
|
||||
}
|
||||
|
||||
private static boolean isLetter(char c) {
|
||||
return c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z';
|
||||
}
|
||||
|
||||
private static boolean isDigit(char c) {
|
||||
return c >= '0' && c <= '9';
|
||||
}
|
||||
|
||||
private static boolean isLowerCaseLetter(char c) {
|
||||
return c >= 'a' && c <= 'z';
|
||||
}
|
||||
|
||||
private static boolean isUpperCaseLetter(char c) {
|
||||
return c >= 'A' && c <= 'Z';
|
||||
}
|
||||
|
||||
private static boolean method523(char ac[]) {
|
||||
boolean flag = true;
|
||||
for (int i = 0; i < ac.length; i++) {
|
||||
if (!isDigit(ac[i]) && ac[i] != 0) {
|
||||
flag = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (flag) {
|
||||
return true;
|
||||
}
|
||||
int j = method524(ac);
|
||||
int k = 0;
|
||||
int l = anIntArray620.length - 1;
|
||||
if (j == anIntArray620[k] || j == anIntArray620[l]) {
|
||||
return true;
|
||||
}
|
||||
do {
|
||||
int i1 = (k + l) / 2;
|
||||
if (j == anIntArray620[i1]) {
|
||||
return true;
|
||||
}
|
||||
if (j < anIntArray620[i1]) {
|
||||
l = i1;
|
||||
} else {
|
||||
k = i1;
|
||||
}
|
||||
} while (k != l && k + 1 != l);
|
||||
return false;
|
||||
}
|
||||
|
||||
private static int method524(char ac[]) {
|
||||
if (ac.length > 6) {
|
||||
return 0;
|
||||
}
|
||||
int k = 0;
|
||||
for (int l = 0; l < ac.length; l++) {
|
||||
char c = ac[ac.length - l - 1];
|
||||
if (c >= 'a' && c <= 'z') {
|
||||
k = k * 38 + c - 97 + 1;
|
||||
} else if (c == '\'') {
|
||||
k = k * 38 + 27;
|
||||
} else if (c >= '0' && c <= '9') {
|
||||
k = k * 38 + c - 48 + 28;
|
||||
} else if (c != 0) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return k;
|
||||
}
|
||||
|
||||
private static int[] anIntArray620;
|
||||
private static char[][] aCharArrayArray621;
|
||||
private static byte[][][] aByteArrayArrayArray622;
|
||||
private static char[][] aCharArrayArray623;
|
||||
private static char[][] aCharArrayArray624;
|
||||
private static int[] anIntArray625;
|
||||
private static final String[] exceptions = {"cook", "cook's", "cooks", "seeks", "sheet", "woop", "woops", "faq", "noob", "noobs"};
|
||||
|
||||
}
|
||||
@@ -0,0 +1,195 @@
|
||||
/* Class11 - Decompiled by JODE
|
||||
* Visit http://jode.sourceforge.net/
|
||||
*/
|
||||
|
||||
final class Class11
|
||||
{
|
||||
private static byte[] aByteArray210
|
||||
= { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||
2, 2, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
|
||||
private Stream aClass3_Sub12_211 = new Stream(null);
|
||||
private int[] anIntArray212;
|
||||
int anInt213;
|
||||
private int[] anIntArray214;
|
||||
private long aLong215;
|
||||
int[] anIntArray216;
|
||||
private int[] anIntArray217;
|
||||
private int anInt218;
|
||||
|
||||
final void method520(int i) {
|
||||
int i_0_ = aClass3_Sub12_211.method428();
|
||||
anIntArray216[i] += i_0_;
|
||||
}
|
||||
|
||||
final boolean method521() {
|
||||
if (aClass3_Sub12_211.currentOffset >= 0)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
final void method522(int i) {
|
||||
anIntArray214[i] = aClass3_Sub12_211.currentOffset;
|
||||
}
|
||||
|
||||
final void method523() {
|
||||
aClass3_Sub12_211.buffer = null;
|
||||
anIntArray217 = null;
|
||||
anIntArray214 = null;
|
||||
anIntArray216 = null;
|
||||
anIntArray212 = null;
|
||||
}
|
||||
|
||||
private final int method524(int i) {
|
||||
int i_1_ = (aClass3_Sub12_211.buffer
|
||||
[aClass3_Sub12_211.currentOffset]);
|
||||
if (i_1_ < 0) {
|
||||
i_1_ &= 0xff;
|
||||
anIntArray212[i] = i_1_;
|
||||
aClass3_Sub12_211.currentOffset++;
|
||||
} else
|
||||
i_1_ = anIntArray212[i];
|
||||
if (i_1_ == 240 || i_1_ == 247) {
|
||||
int i_2_ = aClass3_Sub12_211.method428();
|
||||
if (i_1_ == 247 && i_2_ > 0) {
|
||||
int i_3_ = ((aClass3_Sub12_211.buffer
|
||||
[aClass3_Sub12_211.currentOffset])
|
||||
& 0xff);
|
||||
if (i_3_ >= 241 && i_3_ <= 243 || i_3_ == 246 || i_3_ == 248
|
||||
|| i_3_ >= 250 && i_3_ <= 252 || i_3_ == 254) {
|
||||
aClass3_Sub12_211.currentOffset++;
|
||||
anIntArray212[i] = i_3_;
|
||||
return method535(i, i_3_);
|
||||
}
|
||||
}
|
||||
aClass3_Sub12_211.currentOffset += i_2_;
|
||||
return 0;
|
||||
}
|
||||
return method535(i, i_1_);
|
||||
}
|
||||
|
||||
final void method525(byte[] is) {
|
||||
aClass3_Sub12_211.buffer = is;
|
||||
aClass3_Sub12_211.currentOffset = 10;
|
||||
int i = aClass3_Sub12_211.readUnsignedWord();
|
||||
anInt213 = aClass3_Sub12_211.readUnsignedWord();
|
||||
anInt218 = 500000;
|
||||
anIntArray217 = new int[i];
|
||||
int i_4_ = 0;
|
||||
while (i_4_ < i) {
|
||||
int i_5_ = aClass3_Sub12_211.readDWord();
|
||||
int i_6_ = aClass3_Sub12_211.readDWord();
|
||||
if (i_5_ == 1297379947) {
|
||||
anIntArray217[i_4_]
|
||||
= aClass3_Sub12_211.currentOffset;
|
||||
i_4_++;
|
||||
}
|
||||
aClass3_Sub12_211.currentOffset += i_6_;
|
||||
}
|
||||
anIntArray214 = anIntArray217.clone();
|
||||
anIntArray216 = new int[i];
|
||||
anIntArray212 = new int[i];
|
||||
}
|
||||
|
||||
final void method526(int i) {
|
||||
aClass3_Sub12_211.currentOffset = anIntArray214[i];
|
||||
}
|
||||
|
||||
final boolean method527() {
|
||||
if (aClass3_Sub12_211.buffer == null)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
final void method528() {
|
||||
aClass3_Sub12_211.currentOffset = -1;
|
||||
}
|
||||
|
||||
final int method529(int i) {
|
||||
int i_7_ = method524(i);
|
||||
return i_7_;
|
||||
}
|
||||
|
||||
public static void reset() {
|
||||
aByteArray210 = null;
|
||||
}
|
||||
|
||||
final boolean method531() {
|
||||
int i = anIntArray214.length;
|
||||
for (int i_8_ = 0; i_8_ < i; i_8_++) {
|
||||
if (anIntArray214[i_8_] >= 0)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
final long method532(int i) {
|
||||
return aLong215 + (long) i * (long) anInt218;
|
||||
}
|
||||
|
||||
final int method533() {
|
||||
return anIntArray214.length;
|
||||
}
|
||||
|
||||
final void method534(long l) {
|
||||
aLong215 = l;
|
||||
int i = anIntArray214.length;
|
||||
for (int i_9_ = 0; i_9_ < i; i_9_++) {
|
||||
anIntArray216[i_9_] = 0;
|
||||
anIntArray212[i_9_] = 0;
|
||||
aClass3_Sub12_211.currentOffset = anIntArray217[i_9_];
|
||||
method520(i_9_);
|
||||
anIntArray214[i_9_] = aClass3_Sub12_211.currentOffset;
|
||||
}
|
||||
}
|
||||
|
||||
private final int method535(int i, int i_10_) {
|
||||
if (i_10_ == 255) {
|
||||
int i_11_ = aClass3_Sub12_211.readUnsignedByte();
|
||||
int i_12_ = aClass3_Sub12_211.method428();
|
||||
if (i_11_ == 47) {
|
||||
aClass3_Sub12_211.currentOffset += i_12_;
|
||||
return 1;
|
||||
}
|
||||
if (i_11_ == 81) {
|
||||
int i_13_ = aClass3_Sub12_211.read3Bytes();
|
||||
i_12_ -= 3;
|
||||
int i_14_ = anIntArray216[i];
|
||||
aLong215 += (long) i_14_ * (long) (anInt218 - i_13_);
|
||||
anInt218 = i_13_;
|
||||
aClass3_Sub12_211.currentOffset += i_12_;
|
||||
return 2;
|
||||
}
|
||||
aClass3_Sub12_211.currentOffset += i_12_;
|
||||
return 3;
|
||||
}
|
||||
byte i_15_ = aByteArray210[i_10_ - 128];
|
||||
int i_16_ = i_10_;
|
||||
if (i_15_ >= 1)
|
||||
i_16_ |= aClass3_Sub12_211.readUnsignedByte() << 8;
|
||||
if (i_15_ >= 2)
|
||||
i_16_ |= aClass3_Sub12_211.readUnsignedByte() << 16;
|
||||
return i_16_;
|
||||
}
|
||||
|
||||
final int method536() {
|
||||
int i = anIntArray214.length;
|
||||
int i_17_ = -1;
|
||||
int i_18_ = 2147483647;
|
||||
for (int i_19_ = 0; i_19_ < i; i_19_++) {
|
||||
if (anIntArray214[i_19_] >= 0
|
||||
&& anIntArray216[i_19_] < i_18_) {
|
||||
i_17_ = i_19_;
|
||||
i_18_ = anIntArray216[i_19_];
|
||||
}
|
||||
}
|
||||
return i_17_;
|
||||
}
|
||||
|
||||
public Class11() {
|
||||
/* empty */
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,532 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class Class13 {
|
||||
|
||||
public static int method225(byte abyte0[], int i, byte abyte1[], int j, int k) {
|
||||
synchronized (aClass32_305) {
|
||||
aClass32_305.aByteArray563 = abyte1;
|
||||
aClass32_305.anInt564 = k;
|
||||
aClass32_305.aByteArray568 = abyte0;
|
||||
aClass32_305.anInt569 = 0;
|
||||
aClass32_305.anInt565 = j;
|
||||
aClass32_305.anInt570 = i;
|
||||
aClass32_305.anInt577 = 0;
|
||||
aClass32_305.anInt576 = 0;
|
||||
aClass32_305.anInt566 = 0;
|
||||
aClass32_305.anInt567 = 0;
|
||||
aClass32_305.anInt571 = 0;
|
||||
aClass32_305.anInt572 = 0;
|
||||
aClass32_305.anInt579 = 0;
|
||||
method227(aClass32_305);
|
||||
i -= aClass32_305.anInt570;
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
private static void method226(Class32 class32) {
|
||||
byte byte4 = class32.aByte573;
|
||||
int i = class32.anInt574;
|
||||
int j = class32.anInt584;
|
||||
int k = class32.anInt582;
|
||||
int ai[] = Class32.anIntArray587;
|
||||
int l = class32.anInt581;
|
||||
byte abyte0[] = class32.aByteArray568;
|
||||
int i1 = class32.anInt569;
|
||||
int j1 = class32.anInt570;
|
||||
int k1 = j1;
|
||||
int l1 = class32.anInt601 + 1;
|
||||
label0 : do {
|
||||
if (i > 0) {
|
||||
do {
|
||||
if (j1 == 0) {
|
||||
break label0;
|
||||
}
|
||||
if (i == 1) {
|
||||
break;
|
||||
}
|
||||
abyte0[i1] = byte4;
|
||||
i--;
|
||||
i1++;
|
||||
j1--;
|
||||
} while (true);
|
||||
if (j1 == 0) {
|
||||
i = 1;
|
||||
break;
|
||||
}
|
||||
abyte0[i1] = byte4;
|
||||
i1++;
|
||||
j1--;
|
||||
}
|
||||
boolean flag = true;
|
||||
while (flag) {
|
||||
flag = false;
|
||||
if (j == l1) {
|
||||
i = 0;
|
||||
break label0;
|
||||
}
|
||||
byte4 = (byte) k;
|
||||
l = ai[l];
|
||||
byte byte0 = (byte) (l & 0xff);
|
||||
l >>= 8;
|
||||
j++;
|
||||
if (byte0 != k) {
|
||||
k = byte0;
|
||||
if (j1 == 0) {
|
||||
i = 1;
|
||||
} else {
|
||||
abyte0[i1] = byte4;
|
||||
i1++;
|
||||
j1--;
|
||||
flag = true;
|
||||
continue;
|
||||
}
|
||||
break label0;
|
||||
}
|
||||
if (j != l1) {
|
||||
continue;
|
||||
}
|
||||
if (j1 == 0) {
|
||||
i = 1;
|
||||
break label0;
|
||||
}
|
||||
abyte0[i1] = byte4;
|
||||
i1++;
|
||||
j1--;
|
||||
flag = true;
|
||||
}
|
||||
i = 2;
|
||||
l = ai[l];
|
||||
byte byte1 = (byte) (l & 0xff);
|
||||
l >>= 8;
|
||||
if (++j != l1) {
|
||||
if (byte1 != k) {
|
||||
k = byte1;
|
||||
} else {
|
||||
i = 3;
|
||||
l = ai[l];
|
||||
byte byte2 = (byte) (l & 0xff);
|
||||
l >>= 8;
|
||||
if (++j != l1) {
|
||||
if (byte2 != k) {
|
||||
k = byte2;
|
||||
} else {
|
||||
l = ai[l];
|
||||
byte byte3 = (byte) (l & 0xff);
|
||||
l >>= 8;
|
||||
j++;
|
||||
i = (byte3 & 0xff) + 4;
|
||||
l = ai[l];
|
||||
k = (byte) (l & 0xff);
|
||||
l >>= 8;
|
||||
j++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} while (true);
|
||||
int i2 = class32.anInt571;
|
||||
class32.anInt571 += k1 - j1;
|
||||
if (class32.anInt571 < i2) {
|
||||
class32.anInt572++;
|
||||
}
|
||||
class32.aByte573 = byte4;
|
||||
class32.anInt574 = i;
|
||||
class32.anInt584 = j;
|
||||
class32.anInt582 = k;
|
||||
Class32.anIntArray587 = ai;
|
||||
class32.anInt581 = l;
|
||||
class32.aByteArray568 = abyte0;
|
||||
class32.anInt569 = i1;
|
||||
class32.anInt570 = j1;
|
||||
}
|
||||
|
||||
private static void method227(Class32 class32) {
|
||||
int k8 = 0;
|
||||
int ai[] = null;
|
||||
int ai1[] = null;
|
||||
int ai2[] = null;
|
||||
class32.anInt578 = 1;
|
||||
if (Class32.anIntArray587 == null) {
|
||||
Class32.anIntArray587 = new int[class32.anInt578 * 0x186a0];
|
||||
}
|
||||
boolean flag19 = true;
|
||||
while (flag19) {
|
||||
byte byte0 = method228(class32);
|
||||
if (byte0 == 23) {
|
||||
return;
|
||||
}
|
||||
byte0 = method228(class32);
|
||||
byte0 = method228(class32);
|
||||
byte0 = method228(class32);
|
||||
byte0 = method228(class32);
|
||||
byte0 = method228(class32);
|
||||
class32.anInt579++;
|
||||
byte0 = method228(class32);
|
||||
byte0 = method228(class32);
|
||||
byte0 = method228(class32);
|
||||
byte0 = method228(class32);
|
||||
byte0 = method229(class32);
|
||||
class32.aBoolean575 = byte0 != 0;
|
||||
if (class32.aBoolean575) {
|
||||
System.out.println("PANIC! RANDOMISED BLOCK!");
|
||||
}
|
||||
class32.anInt580 = 0;
|
||||
byte0 = method228(class32);
|
||||
class32.anInt580 = class32.anInt580 << 8 | byte0 & 0xff;
|
||||
byte0 = method228(class32);
|
||||
class32.anInt580 = class32.anInt580 << 8 | byte0 & 0xff;
|
||||
byte0 = method228(class32);
|
||||
class32.anInt580 = class32.anInt580 << 8 | byte0 & 0xff;
|
||||
for (int j = 0; j < 16; j++) {
|
||||
byte byte1 = method229(class32);
|
||||
class32.aBooleanArray590[j] = byte1 == 1;
|
||||
}
|
||||
|
||||
for (int k = 0; k < 256; k++) {
|
||||
class32.aBooleanArray589[k] = false;
|
||||
}
|
||||
|
||||
for (int l = 0; l < 16; l++) {
|
||||
if (class32.aBooleanArray590[l]) {
|
||||
for (int i3 = 0; i3 < 16; i3++) {
|
||||
byte byte2 = method229(class32);
|
||||
if (byte2 == 1) {
|
||||
class32.aBooleanArray589[l * 16 + i3] = true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
method231(class32);
|
||||
int i4 = class32.anInt588 + 2;
|
||||
int j4 = method230(3, class32);
|
||||
int k4 = method230(15, class32);
|
||||
for (int i1 = 0; i1 < k4; i1++) {
|
||||
int j3 = 0;
|
||||
do {
|
||||
byte byte3 = method229(class32);
|
||||
if (byte3 == 0) {
|
||||
break;
|
||||
}
|
||||
j3++;
|
||||
} while (true);
|
||||
class32.aByteArray595[i1] = (byte) j3;
|
||||
}
|
||||
|
||||
byte abyte0[] = new byte[6];
|
||||
for (byte byte16 = 0; byte16 < j4; byte16++) {
|
||||
abyte0[byte16] = byte16;
|
||||
}
|
||||
|
||||
for (int j1 = 0; j1 < k4; j1++) {
|
||||
byte byte17 = class32.aByteArray595[j1];
|
||||
byte byte15 = abyte0[byte17];
|
||||
for (; byte17 > 0; byte17--) {
|
||||
abyte0[byte17] = abyte0[byte17 - 1];
|
||||
}
|
||||
|
||||
abyte0[0] = byte15;
|
||||
class32.aByteArray594[j1] = byte15;
|
||||
}
|
||||
|
||||
for (int k3 = 0; k3 < j4; k3++) {
|
||||
int l6 = method230(5, class32);
|
||||
for (int k1 = 0; k1 < i4; k1++) {
|
||||
do {
|
||||
byte byte4 = method229(class32);
|
||||
if (byte4 == 0) {
|
||||
break;
|
||||
}
|
||||
byte4 = method229(class32);
|
||||
if (byte4 == 0) {
|
||||
l6++;
|
||||
} else {
|
||||
l6--;
|
||||
}
|
||||
} while (true);
|
||||
class32.aByteArrayArray596[k3][k1] = (byte) l6;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for (int l3 = 0; l3 < j4; l3++) {
|
||||
byte byte8 = 32;
|
||||
int i = 0;
|
||||
for (int l1 = 0; l1 < i4; l1++) {
|
||||
if (class32.aByteArrayArray596[l3][l1] > i) {
|
||||
i = class32.aByteArrayArray596[l3][l1];
|
||||
}
|
||||
if (class32.aByteArrayArray596[l3][l1] < byte8) {
|
||||
byte8 = class32.aByteArrayArray596[l3][l1];
|
||||
}
|
||||
}
|
||||
|
||||
method232(class32.anIntArrayArray597[l3], class32.anIntArrayArray598[l3], class32.anIntArrayArray599[l3], class32.aByteArrayArray596[l3], byte8, i, i4);
|
||||
class32.anIntArray600[l3] = byte8;
|
||||
}
|
||||
|
||||
int l4 = class32.anInt588 + 1;
|
||||
int i5 = -1;
|
||||
int j5 = 0;
|
||||
for (int i2 = 0; i2 <= 255; i2++) {
|
||||
class32.anIntArray583[i2] = 0;
|
||||
}
|
||||
|
||||
int j9 = 4095;
|
||||
for (int l8 = 15; l8 >= 0; l8--) {
|
||||
for (int i9 = 15; i9 >= 0; i9--) {
|
||||
class32.aByteArray592[j9] = (byte) (l8 * 16 + i9);
|
||||
j9--;
|
||||
}
|
||||
|
||||
class32.anIntArray593[l8] = j9 + 1;
|
||||
}
|
||||
|
||||
int i6 = 0;
|
||||
if (j5 == 0) {
|
||||
i5++;
|
||||
j5 = 50;
|
||||
byte byte12 = class32.aByteArray594[i5];
|
||||
k8 = class32.anIntArray600[byte12];
|
||||
ai = class32.anIntArrayArray597[byte12];
|
||||
ai2 = class32.anIntArrayArray599[byte12];
|
||||
ai1 = class32.anIntArrayArray598[byte12];
|
||||
}
|
||||
j5--;
|
||||
int i7 = k8;
|
||||
int l7;
|
||||
byte byte9;
|
||||
for (l7 = method230(i7, class32); l7 > ai[i7]; l7 = l7 << 1 | byte9) {
|
||||
i7++;
|
||||
byte9 = method229(class32);
|
||||
}
|
||||
|
||||
for (int k5 = ai2[l7 - ai1[i7]]; k5 != l4;) {
|
||||
if (k5 == 0 || k5 == 1) {
|
||||
int j6 = -1;
|
||||
int k6 = 1;
|
||||
do {
|
||||
if (k5 == 0) {
|
||||
j6 += k6;
|
||||
} else if (k5 == 1) {
|
||||
j6 += 2 * k6;
|
||||
}
|
||||
k6 *= 2;
|
||||
if (j5 == 0) {
|
||||
i5++;
|
||||
j5 = 50;
|
||||
byte byte13 = class32.aByteArray594[i5];
|
||||
k8 = class32.anIntArray600[byte13];
|
||||
ai = class32.anIntArrayArray597[byte13];
|
||||
ai2 = class32.anIntArrayArray599[byte13];
|
||||
ai1 = class32.anIntArrayArray598[byte13];
|
||||
}
|
||||
j5--;
|
||||
int j7 = k8;
|
||||
int i8;
|
||||
byte byte10;
|
||||
for (i8 = method230(j7, class32); i8 > ai[j7]; i8 = i8 << 1 | byte10) {
|
||||
j7++;
|
||||
byte10 = method229(class32);
|
||||
}
|
||||
|
||||
k5 = ai2[i8 - ai1[j7]];
|
||||
} while (k5 == 0 || k5 == 1);
|
||||
j6++;
|
||||
byte byte5 = class32.aByteArray591[class32.aByteArray592[class32.anIntArray593[0]] & 0xff];
|
||||
class32.anIntArray583[byte5 & 0xff] += j6;
|
||||
for (; j6 > 0; j6--) {
|
||||
Class32.anIntArray587[i6] = byte5 & 0xff;
|
||||
i6++;
|
||||
}
|
||||
|
||||
} else {
|
||||
int j11 = k5 - 1;
|
||||
byte byte6;
|
||||
if (j11 < 16) {
|
||||
int j10 = class32.anIntArray593[0];
|
||||
byte6 = class32.aByteArray592[j10 + j11];
|
||||
for (; j11 > 3; j11 -= 4) {
|
||||
int k11 = j10 + j11;
|
||||
class32.aByteArray592[k11] = class32.aByteArray592[k11 - 1];
|
||||
class32.aByteArray592[k11 - 1] = class32.aByteArray592[k11 - 2];
|
||||
class32.aByteArray592[k11 - 2] = class32.aByteArray592[k11 - 3];
|
||||
class32.aByteArray592[k11 - 3] = class32.aByteArray592[k11 - 4];
|
||||
}
|
||||
|
||||
for (; j11 > 0; j11--) {
|
||||
class32.aByteArray592[j10 + j11] = class32.aByteArray592[j10 + j11 - 1];
|
||||
}
|
||||
|
||||
class32.aByteArray592[j10] = byte6;
|
||||
} else {
|
||||
int l10 = j11 / 16;
|
||||
int i11 = j11 % 16;
|
||||
int k10 = class32.anIntArray593[l10] + i11;
|
||||
byte6 = class32.aByteArray592[k10];
|
||||
for (; k10 > class32.anIntArray593[l10]; k10--) {
|
||||
class32.aByteArray592[k10] = class32.aByteArray592[k10 - 1];
|
||||
}
|
||||
|
||||
class32.anIntArray593[l10]++;
|
||||
for (; l10 > 0; l10--) {
|
||||
class32.anIntArray593[l10]--;
|
||||
class32.aByteArray592[class32.anIntArray593[l10]] = class32.aByteArray592[class32.anIntArray593[l10 - 1] + 16 - 1];
|
||||
}
|
||||
|
||||
class32.anIntArray593[0]--;
|
||||
class32.aByteArray592[class32.anIntArray593[0]] = byte6;
|
||||
if (class32.anIntArray593[0] == 0) {
|
||||
int i10 = 4095;
|
||||
for (int k9 = 15; k9 >= 0; k9--) {
|
||||
for (int l9 = 15; l9 >= 0; l9--) {
|
||||
class32.aByteArray592[i10] = class32.aByteArray592[class32.anIntArray593[k9] + l9];
|
||||
i10--;
|
||||
}
|
||||
|
||||
class32.anIntArray593[k9] = i10 + 1;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
class32.anIntArray583[class32.aByteArray591[byte6 & 0xff] & 0xff]++;
|
||||
Class32.anIntArray587[i6] = class32.aByteArray591[byte6 & 0xff] & 0xff;
|
||||
i6++;
|
||||
if (j5 == 0) {
|
||||
i5++;
|
||||
j5 = 50;
|
||||
byte byte14 = class32.aByteArray594[i5];
|
||||
k8 = class32.anIntArray600[byte14];
|
||||
ai = class32.anIntArrayArray597[byte14];
|
||||
ai2 = class32.anIntArrayArray599[byte14];
|
||||
ai1 = class32.anIntArrayArray598[byte14];
|
||||
}
|
||||
j5--;
|
||||
int k7 = k8;
|
||||
int j8;
|
||||
byte byte11;
|
||||
for (j8 = method230(k7, class32); j8 > ai[k7]; j8 = j8 << 1 | byte11) {
|
||||
k7++;
|
||||
byte11 = method229(class32);
|
||||
}
|
||||
|
||||
k5 = ai2[j8 - ai1[k7]];
|
||||
}
|
||||
}
|
||||
|
||||
class32.anInt574 = 0;
|
||||
class32.aByte573 = 0;
|
||||
class32.anIntArray585[0] = 0;
|
||||
for (int j2 = 1; j2 <= 256; j2++) {
|
||||
class32.anIntArray585[j2] = class32.anIntArray583[j2 - 1];
|
||||
}
|
||||
|
||||
for (int k2 = 1; k2 <= 256; k2++) {
|
||||
class32.anIntArray585[k2] += class32.anIntArray585[k2 - 1];
|
||||
}
|
||||
|
||||
for (int l2 = 0; l2 < i6; l2++) {
|
||||
byte byte7 = (byte) (Class32.anIntArray587[l2] & 0xff);
|
||||
Class32.anIntArray587[class32.anIntArray585[byte7 & 0xff]] |= l2 << 8;
|
||||
class32.anIntArray585[byte7 & 0xff]++;
|
||||
}
|
||||
|
||||
class32.anInt581 = Class32.anIntArray587[class32.anInt580] >> 8;
|
||||
class32.anInt584 = 0;
|
||||
class32.anInt581 = Class32.anIntArray587[class32.anInt581];
|
||||
class32.anInt582 = (byte) (class32.anInt581 & 0xff);
|
||||
class32.anInt581 >>= 8;
|
||||
class32.anInt584++;
|
||||
class32.anInt601 = i6;
|
||||
method226(class32);
|
||||
flag19 = class32.anInt584 == class32.anInt601 + 1 && class32.anInt574 == 0;
|
||||
}
|
||||
}
|
||||
|
||||
private static byte method228(Class32 class32) {
|
||||
return (byte) method230(8, class32);
|
||||
}
|
||||
|
||||
private static byte method229(Class32 class32) {
|
||||
return (byte) method230(1, class32);
|
||||
}
|
||||
|
||||
private static int method230(int i, Class32 class32) {
|
||||
int j;
|
||||
do {
|
||||
if (class32.anInt577 >= i) {
|
||||
int k = class32.anInt576 >> class32.anInt577 - i & (1 << i) - 1;
|
||||
class32.anInt577 -= i;
|
||||
j = k;
|
||||
break;
|
||||
}
|
||||
class32.anInt576 = class32.anInt576 << 8 | class32.aByteArray563[class32.anInt564] & 0xff;
|
||||
class32.anInt577 += 8;
|
||||
class32.anInt564++;
|
||||
class32.anInt565--;
|
||||
class32.anInt566++;
|
||||
if (class32.anInt566 == 0) {
|
||||
class32.anInt567++;
|
||||
}
|
||||
} while (true);
|
||||
return j;
|
||||
}
|
||||
|
||||
private static void method231(Class32 class32) {
|
||||
class32.anInt588 = 0;
|
||||
for (int i = 0; i < 256; i++) {
|
||||
if (class32.aBooleanArray589[i]) {
|
||||
class32.aByteArray591[class32.anInt588] = (byte) i;
|
||||
class32.anInt588++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static void method232(int ai[], int ai1[], int ai2[], byte abyte0[], int i, int j, int k) {
|
||||
int l = 0;
|
||||
for (int i1 = i; i1 <= j; i1++) {
|
||||
for (int l2 = 0; l2 < k; l2++) {
|
||||
if (abyte0[l2] == i1) {
|
||||
ai2[l] = l2;
|
||||
l++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for (int j1 = 0; j1 < 23; j1++) {
|
||||
ai1[j1] = 0;
|
||||
}
|
||||
|
||||
for (int k1 = 0; k1 < k; k1++) {
|
||||
ai1[abyte0[k1] + 1]++;
|
||||
}
|
||||
|
||||
for (int l1 = 1; l1 < 23; l1++) {
|
||||
ai1[l1] += ai1[l1 - 1];
|
||||
}
|
||||
|
||||
for (int i2 = 0; i2 < 23; i2++) {
|
||||
ai[i2] = 0;
|
||||
}
|
||||
|
||||
int i3 = 0;
|
||||
for (int j2 = i; j2 <= j; j2++) {
|
||||
i3 += ai1[j2 + 1] - ai1[j2];
|
||||
ai[j2] = i3 - 1;
|
||||
i3 <<= 1;
|
||||
}
|
||||
|
||||
for (int k2 = i + 1; k2 <= j; k2++) {
|
||||
ai1[k2] = (ai[k2 - 1] + 1 << 1) - ai1[k2];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static final Class32 aClass32_305 = new Class32();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public final class Class18 {
|
||||
|
||||
public Class18(Stream stream) {
|
||||
int anInt341 = stream.readUnsignedByte();
|
||||
anIntArray342 = new int[anInt341];
|
||||
anIntArrayArray343 = new int[anInt341][];
|
||||
for (int j = 0; j < anInt341; j++) {
|
||||
anIntArray342[j] = stream.readUnsignedByte();
|
||||
}
|
||||
|
||||
for (int k = 0; k < anInt341; k++) {
|
||||
int l = stream.readUnsignedByte();
|
||||
anIntArrayArray343[k] = new int[l];
|
||||
for (int i1 = 0; i1 < l; i1++) {
|
||||
anIntArrayArray343[k][i1] = stream.readUnsignedByte();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public final int[] anIntArray342;
|
||||
public final int[][] anIntArrayArray343;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class Class21 {
|
||||
|
||||
public Class21() {
|
||||
}
|
||||
|
||||
public byte aByteArray368[];
|
||||
public int anInt369;
|
||||
public int anInt370;
|
||||
public int anInt371;
|
||||
public int anInt372;
|
||||
public int anInt373;
|
||||
public int anInt374;
|
||||
public int anInt375;
|
||||
public int anInt376;
|
||||
public int anInt377;
|
||||
public int anInt378;
|
||||
public int anInt379;
|
||||
public int anInt380;
|
||||
public int anInt381;
|
||||
public int anInt382;
|
||||
public int anInt383;
|
||||
public int anInt384;
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class Class29 {
|
||||
|
||||
public void method325(Stream stream) {
|
||||
anInt540 = stream.readUnsignedByte();
|
||||
anInt538 = stream.readDWord();
|
||||
anInt539 = stream.readDWord();
|
||||
method326(stream);
|
||||
}
|
||||
|
||||
public void method326(Stream stream) {
|
||||
anInt535 = stream.readUnsignedByte();
|
||||
anIntArray536 = new int[anInt535];
|
||||
anIntArray537 = new int[anInt535];
|
||||
for (int i = 0; i < anInt535; i++) {
|
||||
anIntArray536[i] = stream.readUnsignedWord();
|
||||
anIntArray537[i] = stream.readUnsignedWord();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void resetValues() {
|
||||
anInt541 = 0;
|
||||
anInt542 = 0;
|
||||
anInt543 = 0;
|
||||
anInt544 = 0;
|
||||
anInt545 = 0;
|
||||
}
|
||||
|
||||
int method328(int i) {
|
||||
if (anInt545 >= anInt541) {
|
||||
anInt544 = anIntArray537[anInt542++] << 15;
|
||||
if (anInt542 >= anInt535) {
|
||||
anInt542 = anInt535 - 1;
|
||||
}
|
||||
anInt541 = (int) (anIntArray536[anInt542] / 65536D * i);
|
||||
if (anInt541 > anInt545) {
|
||||
anInt543 = ((anIntArray537[anInt542] << 15) - anInt544) / (anInt541 - anInt545);
|
||||
}
|
||||
}
|
||||
anInt544 += anInt543;
|
||||
anInt545++;
|
||||
return anInt544 - anInt543 >> 15;
|
||||
}
|
||||
|
||||
public Class29() {
|
||||
}
|
||||
|
||||
private int anInt535;
|
||||
private int[] anIntArray536;
|
||||
private int[] anIntArray537;
|
||||
int anInt538;
|
||||
int anInt539;
|
||||
int anInt540;
|
||||
private int anInt541;
|
||||
private int anInt542;
|
||||
private int anInt543;
|
||||
private int anInt544;
|
||||
private int anInt545;
|
||||
public static int anInt546;
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class Class30_Sub1 extends Node {
|
||||
|
||||
Class30_Sub1() {
|
||||
anInt1294 = -1;
|
||||
}
|
||||
|
||||
public int anInt1291;
|
||||
public int anInt1292;
|
||||
public int anInt1293;
|
||||
public int anInt1294;
|
||||
public int anInt1295;
|
||||
public int anInt1296;
|
||||
public int anInt1297;
|
||||
public int anInt1298;
|
||||
public int anInt1299;
|
||||
public int anInt1300;
|
||||
public int anInt1301;
|
||||
public int anInt1302;
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class Class32 {
|
||||
|
||||
Class32() {
|
||||
anIntArray583 = new int[256];
|
||||
anIntArray585 = new int[257];
|
||||
aBooleanArray589 = new boolean[256];
|
||||
aBooleanArray590 = new boolean[16];
|
||||
aByteArray591 = new byte[256];
|
||||
aByteArray592 = new byte[4096];
|
||||
anIntArray593 = new int[16];
|
||||
aByteArray594 = new byte[18002];
|
||||
aByteArray595 = new byte[18002];
|
||||
aByteArrayArray596 = new byte[6][258];
|
||||
anIntArrayArray597 = new int[6][258];
|
||||
anIntArrayArray598 = new int[6][258];
|
||||
anIntArrayArray599 = new int[6][258];
|
||||
anIntArray600 = new int[6];
|
||||
}
|
||||
|
||||
byte aByteArray563[];
|
||||
int anInt564;
|
||||
int anInt565;
|
||||
int anInt566;
|
||||
int anInt567;
|
||||
byte aByteArray568[];
|
||||
int anInt569;
|
||||
int anInt570;
|
||||
int anInt571;
|
||||
int anInt572;
|
||||
byte aByte573;
|
||||
int anInt574;
|
||||
boolean aBoolean575;
|
||||
int anInt576;
|
||||
int anInt577;
|
||||
int anInt578;
|
||||
int anInt579;
|
||||
int anInt580;
|
||||
int anInt581;
|
||||
int anInt582;
|
||||
final int[] anIntArray583;
|
||||
int anInt584;
|
||||
final int[] anIntArray585;
|
||||
public static int anIntArray587[];
|
||||
int anInt588;
|
||||
final boolean[] aBooleanArray589;
|
||||
final boolean[] aBooleanArray590;
|
||||
final byte[] aByteArray591;
|
||||
final byte[] aByteArray592;
|
||||
final int[] anIntArray593;
|
||||
final byte[] aByteArray594;
|
||||
final byte[] aByteArray595;
|
||||
final byte[][] aByteArrayArray596;
|
||||
final int[][] anIntArrayArray597;
|
||||
final int[][] anIntArrayArray598;
|
||||
final int[][] anIntArrayArray599;
|
||||
final int[] anIntArray600;
|
||||
int anInt601;
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class Class33 {
|
||||
|
||||
public Class33() {
|
||||
}
|
||||
|
||||
int anInt602;
|
||||
int anInt603;
|
||||
int anInt604;
|
||||
int anInt605;
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public final class Class36 {
|
||||
|
||||
public static void method528(int i) {
|
||||
aClass36Array635 = new Class36[i + 1];
|
||||
aBooleanArray643 = new boolean[i + 1];
|
||||
for (int j = 0; j < i + 1; j++) {
|
||||
aBooleanArray643[j] = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void method529(byte abyte0[]) {
|
||||
Stream stream = new Stream(abyte0);
|
||||
stream.currentOffset = abyte0.length - 8;
|
||||
int i = stream.readUnsignedWord();
|
||||
int j = stream.readUnsignedWord();
|
||||
int k = stream.readUnsignedWord();
|
||||
int l = stream.readUnsignedWord();
|
||||
int i1 = 0;
|
||||
Stream stream_1 = new Stream(abyte0);
|
||||
stream_1.currentOffset = i1;
|
||||
i1 += i + 2;
|
||||
Stream stream_2 = new Stream(abyte0);
|
||||
stream_2.currentOffset = i1;
|
||||
i1 += j;
|
||||
Stream stream_3 = new Stream(abyte0);
|
||||
stream_3.currentOffset = i1;
|
||||
i1 += k;
|
||||
Stream stream_4 = new Stream(abyte0);
|
||||
stream_4.currentOffset = i1;
|
||||
i1 += l;
|
||||
Stream stream_5 = new Stream(abyte0);
|
||||
stream_5.currentOffset = i1;
|
||||
Class18 class18 = new Class18(stream_5);
|
||||
int k1 = stream_1.readUnsignedWord();
|
||||
int ai[] = new int[500];
|
||||
int ai1[] = new int[500];
|
||||
int ai2[] = new int[500];
|
||||
int ai3[] = new int[500];
|
||||
for (int l1 = 0; l1 < k1; l1++) {
|
||||
int i2 = stream_1.readUnsignedWord();
|
||||
Class36 class36 = aClass36Array635[i2] = new Class36();
|
||||
class36.anInt636 = stream_4.readUnsignedByte();
|
||||
class36.aClass18_637 = class18;
|
||||
int j2 = stream_1.readUnsignedByte();
|
||||
int k2 = -1;
|
||||
int l2 = 0;
|
||||
for (int i3 = 0; i3 < j2; i3++) {
|
||||
int j3 = stream_2.readUnsignedByte();
|
||||
if (j3 > 0) {
|
||||
if (class18.anIntArray342[i3] != 0) {
|
||||
for (int l3 = i3 - 1; l3 > k2; l3--) {
|
||||
if (class18.anIntArray342[l3] != 0) {
|
||||
continue;
|
||||
}
|
||||
ai[l2] = l3;
|
||||
ai1[l2] = 0;
|
||||
ai2[l2] = 0;
|
||||
ai3[l2] = 0;
|
||||
l2++;
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
ai[l2] = i3;
|
||||
char c = '\0';
|
||||
if (class18.anIntArray342[i3] == 3) {
|
||||
c = '\200';
|
||||
}
|
||||
if ((j3 & 1) != 0) {
|
||||
ai1[l2] = stream_3.method421();
|
||||
} else {
|
||||
ai1[l2] = c;
|
||||
}
|
||||
if ((j3 & 2) != 0) {
|
||||
ai2[l2] = stream_3.method421();
|
||||
} else {
|
||||
ai2[l2] = c;
|
||||
}
|
||||
if ((j3 & 4) != 0) {
|
||||
ai3[l2] = stream_3.method421();
|
||||
} else {
|
||||
ai3[l2] = c;
|
||||
}
|
||||
k2 = i3;
|
||||
l2++;
|
||||
if (class18.anIntArray342[i3] == 5) {
|
||||
aBooleanArray643[i2] = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class36.anInt638 = l2;
|
||||
class36.anIntArray639 = new int[l2];
|
||||
class36.anIntArray640 = new int[l2];
|
||||
class36.anIntArray641 = new int[l2];
|
||||
class36.anIntArray642 = new int[l2];
|
||||
for (int k3 = 0; k3 < l2; k3++) {
|
||||
class36.anIntArray639[k3] = ai[k3];
|
||||
class36.anIntArray640[k3] = ai1[k3];
|
||||
class36.anIntArray641[k3] = ai2[k3];
|
||||
class36.anIntArray642[k3] = ai3[k3];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void nullLoader() {
|
||||
aClass36Array635 = null;
|
||||
}
|
||||
|
||||
public static Class36 method531(int j) {
|
||||
if (aClass36Array635 == null) {
|
||||
return null;
|
||||
} else {
|
||||
return aClass36Array635[j];
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean method532(int i) {
|
||||
return i == -1;
|
||||
}
|
||||
|
||||
private Class36() {
|
||||
}
|
||||
|
||||
private static Class36[] aClass36Array635;
|
||||
public int anInt636;
|
||||
public Class18 aClass18_637;
|
||||
public int anInt638;
|
||||
public int anIntArray639[];
|
||||
public int anIntArray640[];
|
||||
public int anIntArray641[];
|
||||
public int anIntArray642[];
|
||||
private static boolean[] aBooleanArray643;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class Class39 {
|
||||
|
||||
private float method541(int i, int j, float f) {
|
||||
float f1 = anIntArrayArrayArray667[i][0][j] + f * (anIntArrayArrayArray667[i][1][j] - anIntArrayArrayArray667[i][0][j]);
|
||||
f1 *= 0.001525879F;
|
||||
return 1.0F - (float) Math.pow(10D, -f1 / 20F);
|
||||
}
|
||||
|
||||
private float method542(float f) {
|
||||
float f1 = 32.7032F * (float) Math.pow(2D, f);
|
||||
return f1 * 3.141593F / 11025F;
|
||||
}
|
||||
|
||||
private float method543(float f, int i, int j) {
|
||||
float f1 = anIntArrayArrayArray666[j][0][i] + f * (anIntArrayArrayArray666[j][1][i] - anIntArrayArrayArray666[j][0][i]);
|
||||
f1 *= 0.0001220703F;
|
||||
return method542(f1);
|
||||
}
|
||||
|
||||
public int method544(int i, float f) {
|
||||
if (i == 0) {
|
||||
float f1 = anIntArray668[0] + (anIntArray668[1] - anIntArray668[0]) * f;
|
||||
f1 *= 0.003051758F;
|
||||
aFloat671 = (float) Math.pow(0.10000000000000001D, f1 / 20F);
|
||||
anInt672 = (int) (aFloat671 * 65536F);
|
||||
}
|
||||
if (anIntArray665[i] == 0) {
|
||||
return 0;
|
||||
}
|
||||
float f2 = method541(i, 0, f);
|
||||
aFloatArrayArray669[i][0] = -2F * f2 * (float) Math.cos(method543(f, 0, i));
|
||||
aFloatArrayArray669[i][1] = f2 * f2;
|
||||
for (int k = 1; k < anIntArray665[i]; k++) {
|
||||
float f3 = method541(i, k, f);
|
||||
float f4 = -2F * f3 * (float) Math.cos(method543(f, k, i));
|
||||
float f5 = f3 * f3;
|
||||
aFloatArrayArray669[i][k * 2 + 1] = aFloatArrayArray669[i][k * 2 - 1] * f5;
|
||||
aFloatArrayArray669[i][k * 2] = aFloatArrayArray669[i][k * 2 - 1] * f4 + aFloatArrayArray669[i][k * 2 - 2] * f5;
|
||||
for (int j1 = k * 2 - 1; j1 >= 2; j1--) {
|
||||
aFloatArrayArray669[i][j1] += aFloatArrayArray669[i][j1 - 1] * f4 + aFloatArrayArray669[i][j1 - 2] * f5;
|
||||
}
|
||||
|
||||
aFloatArrayArray669[i][1] += aFloatArrayArray669[i][0] * f4 + f5;
|
||||
aFloatArrayArray669[i][0] += f4;
|
||||
}
|
||||
|
||||
if (i == 0) {
|
||||
for (int l = 0; l < anIntArray665[0] * 2; l++) {
|
||||
aFloatArrayArray669[0][l] *= aFloat671;
|
||||
}
|
||||
|
||||
}
|
||||
for (int i1 = 0; i1 < anIntArray665[i] * 2; i1++) {
|
||||
anIntArrayArray670[i][i1] = (int) (aFloatArrayArray669[i][i1] * 65536F);
|
||||
}
|
||||
|
||||
return anIntArray665[i] * 2;
|
||||
}
|
||||
|
||||
public void method545(Stream stream, Class29 class29) {
|
||||
int i = stream.readUnsignedByte();
|
||||
anIntArray665[0] = i >> 4;
|
||||
anIntArray665[1] = i & 0xf;
|
||||
if (i != 0) {
|
||||
anIntArray668[0] = stream.readUnsignedWord();
|
||||
anIntArray668[1] = stream.readUnsignedWord();
|
||||
int j = stream.readUnsignedByte();
|
||||
for (int k = 0; k < 2; k++) {
|
||||
for (int l = 0; l < anIntArray665[k]; l++) {
|
||||
anIntArrayArrayArray666[k][0][l] = stream.readUnsignedWord();
|
||||
anIntArrayArrayArray667[k][0][l] = stream.readUnsignedWord();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for (int i1 = 0; i1 < 2; i1++) {
|
||||
for (int j1 = 0; j1 < anIntArray665[i1]; j1++) {
|
||||
if ((j & 1 << i1 * 4 << j1) != 0) {
|
||||
anIntArrayArrayArray666[i1][1][j1] = stream.readUnsignedWord();
|
||||
anIntArrayArrayArray667[i1][1][j1] = stream.readUnsignedWord();
|
||||
} else {
|
||||
anIntArrayArrayArray666[i1][1][j1] = anIntArrayArrayArray666[i1][0][j1];
|
||||
anIntArrayArrayArray667[i1][1][j1] = anIntArrayArrayArray667[i1][0][j1];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (j != 0 || anIntArray668[1] != anIntArray668[0]) {
|
||||
class29.method326(stream);
|
||||
}
|
||||
} else {
|
||||
anIntArray668[0] = anIntArray668[1] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public Class39() {
|
||||
anIntArray665 = new int[2];
|
||||
anIntArrayArrayArray666 = new int[2][2][4];
|
||||
anIntArrayArrayArray667 = new int[2][2][4];
|
||||
anIntArray668 = new int[2];
|
||||
}
|
||||
|
||||
final int[] anIntArray665;
|
||||
private final int[][][] anIntArrayArrayArray666;
|
||||
private final int[][][] anIntArrayArrayArray667;
|
||||
private final int[] anIntArray668;
|
||||
private static final float[][] aFloatArrayArray669 = new float[2][8];
|
||||
static final int[][] anIntArrayArray670 = new int[2][8];
|
||||
private static float aFloat671;
|
||||
static int anInt672;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class Class4 {
|
||||
|
||||
public static int method155(int i, int j, int k) {
|
||||
i &= 3;
|
||||
if (i == 0) {
|
||||
return k;
|
||||
}
|
||||
if (i == 1) {
|
||||
return j;
|
||||
}
|
||||
if (i == 2) {
|
||||
return 7 - k;
|
||||
} else {
|
||||
return 7 - j;
|
||||
}
|
||||
}
|
||||
|
||||
public static int method156(int i, int j, int l) {
|
||||
j &= 3;
|
||||
if (j == 0) {
|
||||
return i;
|
||||
}
|
||||
if (j == 1) {
|
||||
return 7 - l;
|
||||
}
|
||||
if (j == 2) {
|
||||
return 7 - i;
|
||||
} else {
|
||||
return l;
|
||||
}
|
||||
}
|
||||
|
||||
public static int method157(int i, int j, int k, int l, int i1) {
|
||||
i &= 3;
|
||||
if (i == 0) {
|
||||
return k;
|
||||
}
|
||||
if (i == 1) {
|
||||
return l;
|
||||
}
|
||||
if (i == 2) {
|
||||
return 7 - k - (i1 - 1);
|
||||
} else {
|
||||
return 7 - l - (j - 1);
|
||||
}
|
||||
}
|
||||
|
||||
public static int method158(int j, int k, int l, int i1, int j1) {
|
||||
l &= 3;
|
||||
if (l == 0) {
|
||||
return j;
|
||||
}
|
||||
if (l == 1) {
|
||||
return 7 - j1 - (i1 - 1);
|
||||
}
|
||||
if (l == 2) {
|
||||
return 7 - j - (k - 1);
|
||||
} else {
|
||||
return j1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,243 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class Class40 {
|
||||
|
||||
public Class40(int i, int j, int k, int l, int i1, int j1, int k1, int l1, int i2, int j2, int k2, int l2, int i3, int j3, int k3, int l3, int i4, int k4, int l4) {
|
||||
aBoolean683 = !(i3 != l2 || i3 != l || i3 != k2);
|
||||
anInt684 = j3;
|
||||
anInt685 = k1;
|
||||
anInt686 = i2;
|
||||
anInt687 = l4;
|
||||
char c = '\200';
|
||||
int i5 = c / 2;
|
||||
int j5 = c / 4;
|
||||
int k5 = c * 3 / 4;
|
||||
int ai[] = anIntArrayArray696[j3];
|
||||
int l5 = ai.length;
|
||||
anIntArray673 = new int[l5];
|
||||
anIntArray674 = new int[l5];
|
||||
anIntArray675 = new int[l5];
|
||||
int ai1[] = new int[l5];
|
||||
int ai2[] = new int[l5];
|
||||
int i6 = k4 * c;
|
||||
int j6 = i * c;
|
||||
for (int k6 = 0; k6 < l5; k6++) {
|
||||
int l6 = ai[k6];
|
||||
if ((l6 & 1) == 0 && l6 <= 8) {
|
||||
l6 = (l6 - k1 - k1 - 1 & 7) + 1;
|
||||
}
|
||||
if (l6 > 8 && l6 <= 12) {
|
||||
l6 = (l6 - 9 - k1 & 3) + 9;
|
||||
}
|
||||
if (l6 > 12 && l6 <= 16) {
|
||||
l6 = (l6 - 13 - k1 & 3) + 13;
|
||||
}
|
||||
int i7;
|
||||
int k7;
|
||||
int i8;
|
||||
int k8;
|
||||
int j9;
|
||||
if (l6 == 1) {
|
||||
i7 = i6;
|
||||
k7 = j6;
|
||||
i8 = i3;
|
||||
k8 = l1;
|
||||
j9 = j;
|
||||
} else if (l6 == 2) {
|
||||
i7 = i6 + i5;
|
||||
k7 = j6;
|
||||
i8 = i3 + l2 >> 1;
|
||||
k8 = l1 + i4 >> 1;
|
||||
j9 = j + l3 >> 1;
|
||||
} else if (l6 == 3) {
|
||||
i7 = i6 + c;
|
||||
k7 = j6;
|
||||
i8 = l2;
|
||||
k8 = i4;
|
||||
j9 = l3;
|
||||
} else if (l6 == 4) {
|
||||
i7 = i6 + c;
|
||||
k7 = j6 + i5;
|
||||
i8 = l2 + l >> 1;
|
||||
k8 = i4 + j2 >> 1;
|
||||
j9 = l3 + j1 >> 1;
|
||||
} else if (l6 == 5) {
|
||||
i7 = i6 + c;
|
||||
k7 = j6 + c;
|
||||
i8 = l;
|
||||
k8 = j2;
|
||||
j9 = j1;
|
||||
} else if (l6 == 6) {
|
||||
i7 = i6 + i5;
|
||||
k7 = j6 + c;
|
||||
i8 = l + k2 >> 1;
|
||||
k8 = j2 + k >> 1;
|
||||
j9 = j1 + k3 >> 1;
|
||||
} else if (l6 == 7) {
|
||||
i7 = i6;
|
||||
k7 = j6 + c;
|
||||
i8 = k2;
|
||||
k8 = k;
|
||||
j9 = k3;
|
||||
} else if (l6 == 8) {
|
||||
i7 = i6;
|
||||
k7 = j6 + i5;
|
||||
i8 = k2 + i3 >> 1;
|
||||
k8 = k + l1 >> 1;
|
||||
j9 = k3 + j >> 1;
|
||||
} else if (l6 == 9) {
|
||||
i7 = i6 + i5;
|
||||
k7 = j6 + j5;
|
||||
i8 = i3 + l2 >> 1;
|
||||
k8 = l1 + i4 >> 1;
|
||||
j9 = j + l3 >> 1;
|
||||
} else if (l6 == 10) {
|
||||
i7 = i6 + k5;
|
||||
k7 = j6 + i5;
|
||||
i8 = l2 + l >> 1;
|
||||
k8 = i4 + j2 >> 1;
|
||||
j9 = l3 + j1 >> 1;
|
||||
} else if (l6 == 11) {
|
||||
i7 = i6 + i5;
|
||||
k7 = j6 + k5;
|
||||
i8 = l + k2 >> 1;
|
||||
k8 = j2 + k >> 1;
|
||||
j9 = j1 + k3 >> 1;
|
||||
} else if (l6 == 12) {
|
||||
i7 = i6 + j5;
|
||||
k7 = j6 + i5;
|
||||
i8 = k2 + i3 >> 1;
|
||||
k8 = k + l1 >> 1;
|
||||
j9 = k3 + j >> 1;
|
||||
} else if (l6 == 13) {
|
||||
i7 = i6 + j5;
|
||||
k7 = j6 + j5;
|
||||
i8 = i3;
|
||||
k8 = l1;
|
||||
j9 = j;
|
||||
} else if (l6 == 14) {
|
||||
i7 = i6 + k5;
|
||||
k7 = j6 + j5;
|
||||
i8 = l2;
|
||||
k8 = i4;
|
||||
j9 = l3;
|
||||
} else if (l6 == 15) {
|
||||
i7 = i6 + k5;
|
||||
k7 = j6 + k5;
|
||||
i8 = l;
|
||||
k8 = j2;
|
||||
j9 = j1;
|
||||
} else {
|
||||
i7 = i6 + j5;
|
||||
k7 = j6 + k5;
|
||||
i8 = k2;
|
||||
k8 = k;
|
||||
j9 = k3;
|
||||
}
|
||||
anIntArray673[k6] = i7;
|
||||
anIntArray674[k6] = i8;
|
||||
anIntArray675[k6] = k7;
|
||||
ai1[k6] = k8;
|
||||
ai2[k6] = j9;
|
||||
}
|
||||
|
||||
int ai3[] = anIntArrayArray697[j3];
|
||||
int j7 = ai3.length / 4;
|
||||
anIntArray679 = new int[j7];
|
||||
anIntArray680 = new int[j7];
|
||||
anIntArray681 = new int[j7];
|
||||
anIntArray676 = new int[j7];
|
||||
anIntArray677 = new int[j7];
|
||||
anIntArray678 = new int[j7];
|
||||
if (i1 != -1) {
|
||||
anIntArray682 = new int[j7];
|
||||
}
|
||||
int l7 = 0;
|
||||
for (int j8 = 0; j8 < j7; j8++) {
|
||||
int l8 = ai3[l7];
|
||||
int k9 = ai3[l7 + 1];
|
||||
int i10 = ai3[l7 + 2];
|
||||
int k10 = ai3[l7 + 3];
|
||||
l7 += 4;
|
||||
if (k9 < 4) {
|
||||
k9 = k9 - k1 & 3;
|
||||
}
|
||||
if (i10 < 4) {
|
||||
i10 = i10 - k1 & 3;
|
||||
}
|
||||
if (k10 < 4) {
|
||||
k10 = k10 - k1 & 3;
|
||||
}
|
||||
anIntArray679[j8] = k9;
|
||||
anIntArray680[j8] = i10;
|
||||
anIntArray681[j8] = k10;
|
||||
if (l8 == 0) {
|
||||
anIntArray676[j8] = ai1[k9];
|
||||
anIntArray677[j8] = ai1[i10];
|
||||
anIntArray678[j8] = ai1[k10];
|
||||
if (anIntArray682 != null) {
|
||||
anIntArray682[j8] = -1;
|
||||
}
|
||||
} else {
|
||||
anIntArray676[j8] = ai2[k9];
|
||||
anIntArray677[j8] = ai2[i10];
|
||||
anIntArray678[j8] = ai2[k10];
|
||||
if (anIntArray682 != null) {
|
||||
anIntArray682[j8] = i1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int i9 = i3;
|
||||
int l9 = l2;
|
||||
if (l2 < i9) {
|
||||
i9 = l2;
|
||||
}
|
||||
if (l2 > l9) {
|
||||
l9 = l2;
|
||||
}
|
||||
if (l < i9) {
|
||||
i9 = l;
|
||||
}
|
||||
if (l > l9) {
|
||||
l9 = l;
|
||||
}
|
||||
if (k2 < i9) {
|
||||
i9 = k2;
|
||||
}
|
||||
if (k2 > l9) {
|
||||
l9 = k2;
|
||||
}
|
||||
i9 /= 14;
|
||||
l9 /= 14;
|
||||
}
|
||||
|
||||
final int[] anIntArray673;
|
||||
final int[] anIntArray674;
|
||||
final int[] anIntArray675;
|
||||
final int[] anIntArray676;
|
||||
final int[] anIntArray677;
|
||||
final int[] anIntArray678;
|
||||
final int[] anIntArray679;
|
||||
final int[] anIntArray680;
|
||||
final int[] anIntArray681;
|
||||
int anIntArray682[];
|
||||
final boolean aBoolean683;
|
||||
final int anInt684;
|
||||
final int anInt685;
|
||||
final int anInt686;
|
||||
final int anInt687;
|
||||
static final int[] anIntArray688 = new int[6];
|
||||
static final int[] anIntArray689 = new int[6];
|
||||
static final int[] anIntArray690 = new int[6];
|
||||
static final int[] anIntArray691 = new int[6];
|
||||
static final int[] anIntArray692 = new int[6];
|
||||
static final int[] anIntArray693 = {1, 0};
|
||||
static final int[] anIntArray694 = {2, 1};
|
||||
static final int[] anIntArray695 = {3, 3};
|
||||
private static final int[][] anIntArrayArray696 = {{1, 3, 5, 7}, {1, 3, 5, 7}, {1, 3, 5, 7}, {1, 3, 5, 7, 6}, {1, 3, 5, 7, 6}, {1, 3, 5, 7, 6}, {1, 3, 5, 7, 6}, {1, 3, 5, 7, 2, 6}, {1, 3, 5, 7, 2, 8}, {1, 3, 5, 7, 2, 8}, {1, 3, 5, 7, 11, 12}, {1, 3, 5, 7, 11, 12}, {1, 3, 5, 7, 13, 14}};
|
||||
private static final int[][] anIntArrayArray697 = {{0, 1, 2, 3, 0, 0, 1, 3}, {1, 1, 2, 3, 1, 0, 1, 3}, {0, 1, 2, 3, 1, 0, 1, 3}, {0, 0, 1, 2, 0, 0, 2, 4, 1, 0, 4, 3}, {0, 0, 1, 4, 0, 0, 4, 3, 1, 1, 2, 4}, {0, 0, 4, 3, 1, 0, 1, 2, 1, 0, 2, 4}, {0, 1, 2, 4, 1, 0, 1, 4, 1, 0, 4, 3}, {0, 4, 1, 2, 0, 4, 2, 5, 1, 0, 4, 5, 1, 0, 5, 3}, {0, 4, 1, 2, 0, 4, 2, 3, 0, 4, 3, 5, 1, 0, 4, 5}, {0, 0, 4, 5, 1, 4, 1, 2, 1, 4, 2, 3, 1, 4, 3, 5}, {0, 0, 1, 5, 0, 1, 4, 5, 0, 1, 2, 4, 1, 0, 5, 3, 1, 5, 4, 3, 1, 4, 2, 3}, {1, 0, 1, 5, 1, 1, 4, 5, 1, 1, 2, 4, 0, 0, 5, 3, 0, 5, 4, 3, 0, 4, 2, 3}, {1, 0, 5, 4, 1, 0, 1, 5, 0, 0, 4, 3, 0, 4, 5, 3, 0, 5, 2, 3, 0, 1, 2, 5}};
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class Class43 {
|
||||
|
||||
public Class43(int i, int j, int k, int l, int i1, int j1, boolean flag) {
|
||||
aBoolean721 = true;
|
||||
anInt716 = i;
|
||||
anInt717 = j;
|
||||
anInt718 = k;
|
||||
anInt719 = l;
|
||||
anInt720 = i1;
|
||||
anInt722 = j1;
|
||||
aBoolean721 = flag;
|
||||
}
|
||||
|
||||
final int anInt716;
|
||||
final int anInt717;
|
||||
final int anInt718;
|
||||
final int anInt719;
|
||||
final int anInt720;
|
||||
boolean aBoolean721;
|
||||
final int anInt722;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class Class47 {
|
||||
|
||||
Class47() {
|
||||
}
|
||||
|
||||
int anInt787;
|
||||
int anInt788;
|
||||
int anInt789;
|
||||
int anInt790;
|
||||
int anInt791;
|
||||
int anInt792;
|
||||
int anInt793;
|
||||
int anInt794;
|
||||
int anInt795;
|
||||
int anInt796;
|
||||
int anInt797;
|
||||
int anInt798;
|
||||
int anInt799;
|
||||
int anInt800;
|
||||
int anInt801;
|
||||
int anInt802;
|
||||
int anInt803;
|
||||
int anInt804;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
abstract class Class56 {
|
||||
|
||||
abstract void method827(int i, byte[] is, int i_2_, boolean bool);
|
||||
|
||||
abstract void method828();
|
||||
|
||||
public Class56() {
|
||||
/* empty */
|
||||
}
|
||||
|
||||
abstract void method830(int i, int i_7_);
|
||||
|
||||
abstract void method831(int i);
|
||||
|
||||
abstract void method832(int i);
|
||||
|
||||
abstract void method833();
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
/* Class56_Sub1 - Decompiled by JODE
|
||||
* Visit http://jode.sourceforge.net/
|
||||
*/
|
||||
|
||||
abstract class Class56_Sub1 extends Class56
|
||||
{
|
||||
final void method835(int i, int i_1_, long l) {
|
||||
i_1_ = (int) ((double) i_1_ * Math.pow(0.1, (double) i * 5.0E-4) + 0.5);
|
||||
if (i_1_ != Game.anInt1401) {
|
||||
Game.anInt1401 = i_1_;
|
||||
for (int i_2_ = 0; i_2_ < 16; i_2_++) {
|
||||
int i_3_ = method844(i_2_);
|
||||
method836(i_2_ + 176, 7, i_3_ >> 7, l);
|
||||
method836(i_2_ + 176, 39, i_3_ & 0x7f, l);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
abstract void method836(int i, int i_4_, int i_5_, long l);
|
||||
|
||||
final boolean method837(int i, int i_6_, int i_7_, long l) {
|
||||
if ((i & 0xf0) == 176) {
|
||||
if (i_6_ == 121) {
|
||||
method836(i, i_6_, i_7_, l);
|
||||
int i_8_ = i & 0xf;
|
||||
Game.anIntArray385[i_8_] = 12800;
|
||||
int i_9_ = method844(i_8_);
|
||||
method836(i, 7, i_9_ >> 7, l);
|
||||
method836(i, 39, i_9_ & 0x7f, l);
|
||||
return true;
|
||||
}
|
||||
if (i_6_ == 7 || i_6_ == 39) {
|
||||
int i_10_ = i & 0xf;
|
||||
if (i_6_ == 7)
|
||||
Game.anIntArray385[i_10_] = (Game.anIntArray385[i_10_] & 0x7f) + (i_7_ << 7);
|
||||
else
|
||||
Game.anIntArray385[i_10_] = (Game.anIntArray385[i_10_] & 0x3f80) + i_7_;
|
||||
int i_11_ = method844(i_10_);
|
||||
method836(i, 7, i_11_ >> 7, l);
|
||||
method836(i, 39, i_11_ & 0x7f, l);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
final void method838(long l) {
|
||||
for (int i_12_ = 0; i_12_ < 16; i_12_++)
|
||||
method836(i_12_ + 176, 123, 0, l);
|
||||
for (int i_13_ = 0; i_13_ < 16; i_13_++)
|
||||
method836(i_13_ + 176, 120, 0, l);
|
||||
for (int i_14_ = 0; i_14_ < 16; i_14_++)
|
||||
method836(i_14_ + 176, 121, 0, l);
|
||||
for (int i_15_ = 0; i_15_ < 16; i_15_++)
|
||||
method836(i_15_ + 176, 0, 0, l);
|
||||
for (int i_16_ = 0; i_16_ < 16; i_16_++)
|
||||
method836(i_16_ + 176, 32, 0, l);
|
||||
for (int i_17_ = 0; i_17_ < 16; i_17_++)
|
||||
method836(i_17_ + 192, 0, 0, l);
|
||||
}
|
||||
|
||||
final void method840(int i, long l) {
|
||||
Game.anInt1401 = i;
|
||||
for (int i_21_ = 0; i_21_ < 16; i_21_++)
|
||||
Game.anIntArray385[i_21_] = 12800;
|
||||
for (int i_22_ = 0; i_22_ < 16; i_22_++) {
|
||||
int i_23_ = method844(i_22_);
|
||||
method836(i_22_ + 176, 7, i_23_ >> 7, l);
|
||||
method836(i_22_ + 176, 39, i_23_ & 0x7f, l);
|
||||
}
|
||||
}
|
||||
|
||||
private static final int method844(int i) {
|
||||
int i_32_ = Game.anIntArray385[i];
|
||||
i_32_ = (i_32_ * Game.anInt1401 >> 8) * i_32_;
|
||||
return (int) (Math.sqrt((double) i_32_) + 0.5);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
/* Class56_Sub1_Sub1 - Decompiled by JODE
|
||||
* Visit http://jode.sourceforge.net/
|
||||
*/
|
||||
import java.io.ByteArrayInputStream;
|
||||
|
||||
import javax.sound.midi.InvalidMidiDataException;
|
||||
import javax.sound.midi.MidiMessage;
|
||||
import javax.sound.midi.MidiSystem;
|
||||
import javax.sound.midi.Receiver;
|
||||
import javax.sound.midi.Sequence;
|
||||
import javax.sound.midi.Sequencer;
|
||||
import javax.sound.midi.ShortMessage;
|
||||
|
||||
final class Class56_Sub1_Sub1 extends Class56_Sub1 implements Receiver
|
||||
{
|
||||
private static Receiver aReceiver1850 = null;
|
||||
private static Sequencer aSequencer1851 = null;
|
||||
|
||||
final void method827(int i, byte[] is, int i_0_, boolean bool) {
|
||||
if (aSequencer1851 != null) {
|
||||
try {
|
||||
Sequence sequence = MidiSystem.getSequence(new ByteArrayInputStream(is));
|
||||
aSequencer1851.setSequence(sequence);
|
||||
aSequencer1851.setLoopCount(!bool ? 0 : -1);
|
||||
method835(0, i, -1L);
|
||||
aSequencer1851.start();
|
||||
} catch (Exception exception) {
|
||||
/* empty */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final void method833() {
|
||||
if (aSequencer1851 != null) {
|
||||
aSequencer1851.stop();
|
||||
method838(-1L);
|
||||
}
|
||||
}
|
||||
|
||||
public final synchronized void send(MidiMessage midimessage, long l) {
|
||||
byte[] is = midimessage.getMessage();
|
||||
if (is.length < 3 || !method837(is[0], is[1], is[2], l))
|
||||
aReceiver1850.send(midimessage, l);
|
||||
}
|
||||
|
||||
Class56_Sub1_Sub1() {
|
||||
try {
|
||||
aReceiver1850 = MidiSystem.getReceiver();
|
||||
aSequencer1851 = MidiSystem.getSequencer(false);
|
||||
aSequencer1851.getTransmitter().setReceiver(this);
|
||||
aSequencer1851.open();
|
||||
method838(-1L);
|
||||
} catch (Exception exception) {
|
||||
Game.method790();
|
||||
}
|
||||
}
|
||||
|
||||
final void method828() {
|
||||
if (aSequencer1851 != null) {
|
||||
aSequencer1851.close();
|
||||
aSequencer1851 = null;
|
||||
}
|
||||
if (aReceiver1850 != null) {
|
||||
aReceiver1850.close();
|
||||
aReceiver1850 = null;
|
||||
}
|
||||
}
|
||||
|
||||
public final void close() {
|
||||
/* empty */
|
||||
}
|
||||
|
||||
final void method831(int i) {
|
||||
if (aSequencer1851 != null) {
|
||||
method840(i, -1L);
|
||||
}
|
||||
}
|
||||
|
||||
final synchronized void method830(int i, int i_2_) {
|
||||
if (aSequencer1851 != null) {
|
||||
method835(i_2_, i, -1L);
|
||||
}
|
||||
}
|
||||
|
||||
final void method836(int i, int i_5_, int i_6_, long l) {
|
||||
try {
|
||||
ShortMessage shortmessage = new ShortMessage();
|
||||
shortmessage.setMessage(i, i_5_, i_6_);
|
||||
aReceiver1850.send(shortmessage, l);
|
||||
} catch (InvalidMidiDataException invalidmididataexception) {
|
||||
/* empty */
|
||||
}
|
||||
}
|
||||
|
||||
final void method832(int i) {
|
||||
if (i > -90)
|
||||
method833();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,185 @@
|
||||
/* Class56_Sub1_Sub2 - Decompiled by JODE
|
||||
* Visit http://jode.sourceforge.net/
|
||||
*/
|
||||
|
||||
final class Class56_Sub1_Sub2 extends Class56_Sub1 implements Runnable
|
||||
{
|
||||
private static Runnable_Impl1 aRunnable_Impl1_1852;
|
||||
private static boolean aBoolean1853;
|
||||
private static boolean aBoolean1854;
|
||||
private static int anInt1855;
|
||||
private static int anInt1856;
|
||||
private Class11 aClass11_1857 = new Class11();
|
||||
private static int[] anIntArray1858 = new int[256];
|
||||
|
||||
private static final void method845(int i, int i_1_, int i_2_, int i_3_) {
|
||||
if (anIntArray1858.length <= anInt1856) {
|
||||
aRunnable_Impl1_1852.method10(anIntArray1858, anInt1856);
|
||||
anInt1856 = 0;
|
||||
}
|
||||
anIntArray1858[anInt1856++] = i_1_ - anInt1855;
|
||||
anInt1855 = i_1_;
|
||||
anIntArray1858[anInt1856++] = i_2_ << 8 | i | i_3_ << 16;
|
||||
}
|
||||
|
||||
private static final void method846() {
|
||||
if (anInt1856 > 0) {
|
||||
aRunnable_Impl1_1852.method10(anIntArray1858, anInt1856);
|
||||
anInt1856 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
final void method836(int i, int i_4_, int i_5_, long l) {
|
||||
method845(i, (int) l, i_4_, i_5_);
|
||||
}
|
||||
|
||||
final synchronized void method827(int i, byte[] is, int i_6_,
|
||||
boolean bool) {
|
||||
aClass11_1857.method525(is);
|
||||
boolean bool_7_ = true;
|
||||
aBoolean1854 = bool;
|
||||
anInt1855 = 0;
|
||||
aRunnable_Impl1_1852.method12(false);
|
||||
method835(i_6_, i, (long) anInt1855);
|
||||
int i_8_ = aClass11_1857.method533();
|
||||
for (int i_9_ = 0; i_9_ < i_8_; i_9_++) {
|
||||
aClass11_1857.method526(i_9_);
|
||||
while (!aClass11_1857.method521()) {
|
||||
aClass11_1857.method520(i_9_);
|
||||
if (aClass11_1857.anIntArray216[i_9_] != 0) {
|
||||
bool_7_ = false;
|
||||
break;
|
||||
}
|
||||
method847(i_6_ ^ 0x70, 0L, i_9_);
|
||||
}
|
||||
aClass11_1857.method522(i_9_);
|
||||
}
|
||||
if (bool_7_) {
|
||||
if (aBoolean1854)
|
||||
throw new RuntimeException();
|
||||
method838((long) anInt1855);
|
||||
aClass11_1857.method523();
|
||||
}
|
||||
method846();
|
||||
}
|
||||
|
||||
final synchronized void method831(int i) {
|
||||
method840(i, (long) anInt1855);
|
||||
aRunnable_Impl1_1852.method10(anIntArray1858, anInt1856);
|
||||
anInt1856 = 0;
|
||||
}
|
||||
|
||||
final synchronized void method832(int i) {
|
||||
if (aClass11_1857.method527()) {
|
||||
int i_11_ = anInt1855;
|
||||
int i_12_ = -200;
|
||||
int i_13_ = aRunnable_Impl1_1852.method14(-29810);
|
||||
long l = ((long) (i_11_ - (i_13_ + i_12_))
|
||||
* (long) (aClass11_1857.anInt213 * 1000));
|
||||
for (;;) {
|
||||
int i_14_ = aClass11_1857.method536();
|
||||
int i_15_ = aClass11_1857.anIntArray216[i_14_];
|
||||
long l_16_ = aClass11_1857.method532(i_15_);
|
||||
if (l < l_16_)
|
||||
break;
|
||||
while (i_15_
|
||||
== aClass11_1857.anIntArray216[i_14_]) {
|
||||
aClass11_1857.method526(i_14_);
|
||||
method847(126, l_16_, i_14_);
|
||||
if (aClass11_1857.method521()) {
|
||||
aClass11_1857.method522(i_14_);
|
||||
if (aClass11_1857.method531()) {
|
||||
if (aBoolean1854)
|
||||
aClass11_1857.method534(l_16_);
|
||||
else {
|
||||
method838
|
||||
((long) (int) (l_16_
|
||||
/ (long) ((aClass11_1857.anInt213)
|
||||
* 1000)));
|
||||
aClass11_1857.method523();
|
||||
method846();
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
aClass11_1857.method520(i_14_);
|
||||
aClass11_1857.method522(i_14_);
|
||||
}
|
||||
}
|
||||
if (i > -90)
|
||||
aRunnable_Impl1_1852 = null;
|
||||
method846();
|
||||
}
|
||||
}
|
||||
|
||||
final synchronized void method833() {
|
||||
aRunnable_Impl1_1852.method12(false);
|
||||
method838((long) anInt1855);
|
||||
aRunnable_Impl1_1852.method10(anIntArray1858, anInt1856);
|
||||
anInt1856 = 0;
|
||||
aClass11_1857.method523();
|
||||
}
|
||||
|
||||
final void method828() {
|
||||
synchronized (this) {
|
||||
aBoolean1853 = true;
|
||||
}
|
||||
for (;;) {
|
||||
synchronized (this) {
|
||||
if (!aBoolean1853)
|
||||
break;
|
||||
}
|
||||
Game.sleep(20L);
|
||||
}
|
||||
aRunnable_Impl1_1852.method11(true);
|
||||
}
|
||||
|
||||
public final void run() {
|
||||
try {
|
||||
for (;;) {
|
||||
synchronized (this) {
|
||||
if (aBoolean1853) {
|
||||
aBoolean1853 = false;
|
||||
break;
|
||||
}
|
||||
method832(-126);
|
||||
}
|
||||
Game.sleep(100L);
|
||||
}
|
||||
} catch (Exception exception) {
|
||||
}
|
||||
}
|
||||
|
||||
private final void method847(int i, long l, int i_17_) {
|
||||
int i_18_ = aClass11_1857.method529(i_17_);
|
||||
if (i_18_ != 1) {
|
||||
if ((i_18_ & 0x80) != 0) {
|
||||
int i_19_ = (int) (l / (long) (aClass11_1857.anInt213 * 1000));
|
||||
int i_20_ = i_18_ & 0xff;
|
||||
int i_21_ = (i_18_ & 0xffe7d5) >> 16;
|
||||
int i_22_ = (i_18_ & 0xfff6) >> 8;
|
||||
if (!method837(i_20_, i_22_, i_21_, (long) i_19_))
|
||||
method845(i_20_, i_19_, i_22_, i_21_);
|
||||
}
|
||||
} else
|
||||
aClass11_1857.method528();
|
||||
}
|
||||
|
||||
Class56_Sub1_Sub2(Runnable_Impl1 runnable_impl1) {
|
||||
aRunnable_Impl1_1852 = runnable_impl1;
|
||||
aRunnable_Impl1_1852.method15((byte) 96);
|
||||
aRunnable_Impl1_1852.method12(false);
|
||||
method838((long) anInt1855);
|
||||
aRunnable_Impl1_1852.method10(anIntArray1858, anInt1856);
|
||||
anInt1856 = 0;
|
||||
Thread thread = new Thread(this);
|
||||
thread.setDaemon(true);
|
||||
thread.start();
|
||||
thread.setPriority(10);
|
||||
}
|
||||
|
||||
final synchronized void method830(int i, int i_23_) {
|
||||
method835(i_23_, i, (long) anInt1855);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,305 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class Class6 {
|
||||
|
||||
public static void method166() {
|
||||
anIntArray116 = new int[32768];
|
||||
for (int i = 0; i < 32768; i++) {
|
||||
if (Math.random() > 0.5D) {
|
||||
anIntArray116[i] = 1;
|
||||
} else {
|
||||
anIntArray116[i] = -1;
|
||||
}
|
||||
}
|
||||
|
||||
anIntArray117 = new int[32768];
|
||||
for (int j = 0; j < 32768; j++) {
|
||||
anIntArray117[j] = (int) (Math.sin(j / 5215.1903000000002D) * 16384D);
|
||||
}
|
||||
|
||||
anIntArray115 = new int[0x35d54];
|
||||
}
|
||||
|
||||
public int[] method167(int i, int j) {
|
||||
for (int k = 0; k < i; k++) {
|
||||
anIntArray115[k] = 0;
|
||||
}
|
||||
|
||||
if (j < 10) {
|
||||
return anIntArray115;
|
||||
}
|
||||
double d = i / (j + 0.0D);
|
||||
aClass29_98.resetValues();
|
||||
aClass29_99.resetValues();
|
||||
int l = 0;
|
||||
int i1 = 0;
|
||||
int j1 = 0;
|
||||
if (aClass29_100 != null) {
|
||||
aClass29_100.resetValues();
|
||||
aClass29_101.resetValues();
|
||||
l = (int) ((aClass29_100.anInt539 - aClass29_100.anInt538) * 32.768000000000001D / d);
|
||||
i1 = (int) (aClass29_100.anInt538 * 32.768000000000001D / d);
|
||||
}
|
||||
int k1 = 0;
|
||||
int l1 = 0;
|
||||
int i2 = 0;
|
||||
if (aClass29_102 != null) {
|
||||
aClass29_102.resetValues();
|
||||
aClass29_103.resetValues();
|
||||
k1 = (int) ((aClass29_102.anInt539 - aClass29_102.anInt538) * 32.768000000000001D / d);
|
||||
l1 = (int) (aClass29_102.anInt538 * 32.768000000000001D / d);
|
||||
}
|
||||
for (int j2 = 0; j2 < 5; j2++) {
|
||||
if (anIntArray106[j2] != 0) {
|
||||
anIntArray118[j2] = 0;
|
||||
anIntArray119[j2] = (int) (anIntArray108[j2] * d);
|
||||
anIntArray120[j2] = (anIntArray106[j2] << 14) / 100;
|
||||
anIntArray121[j2] = (int) ((aClass29_98.anInt539 - aClass29_98.anInt538) * 32.768000000000001D * Math.pow(1.0057929410678534D, anIntArray107[j2]) / d);
|
||||
anIntArray122[j2] = (int) (aClass29_98.anInt538 * 32.768000000000001D / d);
|
||||
}
|
||||
}
|
||||
|
||||
for (int k2 = 0; k2 < i; k2++) {
|
||||
int l2 = aClass29_98.method328(i);
|
||||
int j4 = aClass29_99.method328(i);
|
||||
if (aClass29_100 != null) {
|
||||
int j5 = aClass29_100.method328(i);
|
||||
int j6 = aClass29_101.method328(i);
|
||||
l2 += method168(j6, j1, aClass29_100.anInt540) >> 1;
|
||||
j1 += (j5 * l >> 16) + i1;
|
||||
}
|
||||
if (aClass29_102 != null) {
|
||||
int k5 = aClass29_102.method328(i);
|
||||
int k6 = aClass29_103.method328(i);
|
||||
j4 = j4 * ((method168(k6, i2, aClass29_102.anInt540) >> 1) + 32768) >> 15;
|
||||
i2 += (k5 * k1 >> 16) + l1;
|
||||
}
|
||||
for (int l5 = 0; l5 < 5; l5++) {
|
||||
if (anIntArray106[l5] != 0) {
|
||||
int l6 = k2 + anIntArray119[l5];
|
||||
if (l6 < i) {
|
||||
anIntArray115[l6] += method168(j4 * anIntArray120[l5] >> 15, anIntArray118[l5], aClass29_98.anInt540);
|
||||
anIntArray118[l5] += (l2 * anIntArray121[l5] >> 16) + anIntArray122[l5];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (aClass29_104 != null) {
|
||||
aClass29_104.resetValues();
|
||||
aClass29_105.resetValues();
|
||||
int i3 = 0;
|
||||
boolean flag1 = true;
|
||||
for (int i7 = 0; i7 < i; i7++) {
|
||||
int k7 = aClass29_104.method328(i);
|
||||
int i8 = aClass29_105.method328(i);
|
||||
int k4;
|
||||
if (flag1) {
|
||||
k4 = aClass29_104.anInt538 + ((aClass29_104.anInt539 - aClass29_104.anInt538) * k7 >> 8);
|
||||
} else {
|
||||
k4 = aClass29_104.anInt538 + ((aClass29_104.anInt539 - aClass29_104.anInt538) * i8 >> 8);
|
||||
}
|
||||
if ((i3 += 256) >= k4) {
|
||||
i3 = 0;
|
||||
flag1 = !flag1;
|
||||
}
|
||||
if (flag1) {
|
||||
anIntArray115[i7] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (anInt109 > 0 && anInt110 > 0) {
|
||||
int j3 = (int) (anInt109 * d);
|
||||
for (int l4 = j3; l4 < i; l4++) {
|
||||
anIntArray115[l4] += anIntArray115[l4 - j3] * anInt110 / 100;
|
||||
}
|
||||
|
||||
}
|
||||
if (aClass39_111.anIntArray665[0] > 0 || aClass39_111.anIntArray665[1] > 0) {
|
||||
aClass29_112.resetValues();
|
||||
int k3 = aClass29_112.method328(i + 1);
|
||||
int i5 = aClass39_111.method544(0, k3 / 65536F);
|
||||
int i6 = aClass39_111.method544(1, k3 / 65536F);
|
||||
if (i >= i5 + i6) {
|
||||
int j7 = 0;
|
||||
int l7 = i6;
|
||||
if (l7 > i - i5) {
|
||||
l7 = i - i5;
|
||||
}
|
||||
for (; j7 < l7; j7++) {
|
||||
int j8 = (int) ((long) anIntArray115[j7 + i5] * (long) Class39.anInt672 >> 16);
|
||||
for (int k8 = 0; k8 < i5; k8++) {
|
||||
j8 += (int) ((long) anIntArray115[j7 + i5 - 1 - k8] * (long) Class39.anIntArrayArray670[0][k8] >> 16);
|
||||
}
|
||||
|
||||
for (int j9 = 0; j9 < j7; j9++) {
|
||||
j8 -= (int) ((long) anIntArray115[j7 - 1 - j9] * (long) Class39.anIntArrayArray670[1][j9] >> 16);
|
||||
}
|
||||
|
||||
anIntArray115[j7] = j8;
|
||||
k3 = aClass29_112.method328(i + 1);
|
||||
}
|
||||
|
||||
char c = '\200';
|
||||
l7 = c;
|
||||
do {
|
||||
if (l7 > i - i5) {
|
||||
l7 = i - i5;
|
||||
}
|
||||
for (; j7 < l7; j7++) {
|
||||
int l8 = (int) ((long) anIntArray115[j7 + i5] * (long) Class39.anInt672 >> 16);
|
||||
for (int k9 = 0; k9 < i5; k9++) {
|
||||
l8 += (int) ((long) anIntArray115[j7 + i5 - 1 - k9] * (long) Class39.anIntArrayArray670[0][k9] >> 16);
|
||||
}
|
||||
|
||||
for (int i10 = 0; i10 < i6; i10++) {
|
||||
l8 -= (int) ((long) anIntArray115[j7 - 1 - i10] * (long) Class39.anIntArrayArray670[1][i10] >> 16);
|
||||
}
|
||||
|
||||
anIntArray115[j7] = l8;
|
||||
k3 = aClass29_112.method328(i + 1);
|
||||
}
|
||||
|
||||
if (j7 >= i - i5) {
|
||||
break;
|
||||
}
|
||||
i5 = aClass39_111.method544(0, k3 / 65536F);
|
||||
i6 = aClass39_111.method544(1, k3 / 65536F);
|
||||
l7 += c;
|
||||
} while (true);
|
||||
for (; j7 < i; j7++) {
|
||||
int i9 = 0;
|
||||
for (int l9 = j7 + i5 - i; l9 < i5; l9++) {
|
||||
i9 += (int) ((long) anIntArray115[j7 + i5 - 1 - l9] * (long) Class39.anIntArrayArray670[0][l9] >> 16);
|
||||
}
|
||||
|
||||
for (int j10 = 0; j10 < i6; j10++) {
|
||||
i9 -= (int) ((long) anIntArray115[j7 - 1 - j10] * (long) Class39.anIntArrayArray670[1][j10] >> 16);
|
||||
}
|
||||
|
||||
anIntArray115[j7] = i9;
|
||||
aClass29_112.method328(i + 1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
for (int i4 = 0; i4 < i; i4++) {
|
||||
if (anIntArray115[i4] < -32768) {
|
||||
anIntArray115[i4] = -32768;
|
||||
}
|
||||
if (anIntArray115[i4] > 32767) {
|
||||
anIntArray115[i4] = 32767;
|
||||
}
|
||||
}
|
||||
|
||||
return anIntArray115;
|
||||
}
|
||||
|
||||
private int method168(int i, int k, int l) {
|
||||
if (l == 1) {
|
||||
if ((k & 0x7fff) < 16384) {
|
||||
return i;
|
||||
} else {
|
||||
return -i;
|
||||
}
|
||||
}
|
||||
if (l == 2) {
|
||||
return anIntArray117[k & 0x7fff] * i >> 14;
|
||||
}
|
||||
if (l == 3) {
|
||||
return ((k & 0x7fff) * i >> 14) - i;
|
||||
}
|
||||
if (l == 4) {
|
||||
return anIntArray116[k / 2607 & 0x7fff] * i;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void method169(Stream stream) {
|
||||
aClass29_98 = new Class29();
|
||||
aClass29_98.method325(stream);
|
||||
aClass29_99 = new Class29();
|
||||
aClass29_99.method325(stream);
|
||||
int i = stream.readUnsignedByte();
|
||||
if (i != 0) {
|
||||
stream.currentOffset--;
|
||||
aClass29_100 = new Class29();
|
||||
aClass29_100.method325(stream);
|
||||
aClass29_101 = new Class29();
|
||||
aClass29_101.method325(stream);
|
||||
}
|
||||
i = stream.readUnsignedByte();
|
||||
if (i != 0) {
|
||||
stream.currentOffset--;
|
||||
aClass29_102 = new Class29();
|
||||
aClass29_102.method325(stream);
|
||||
aClass29_103 = new Class29();
|
||||
aClass29_103.method325(stream);
|
||||
}
|
||||
i = stream.readUnsignedByte();
|
||||
if (i != 0) {
|
||||
stream.currentOffset--;
|
||||
aClass29_104 = new Class29();
|
||||
aClass29_104.method325(stream);
|
||||
aClass29_105 = new Class29();
|
||||
aClass29_105.method325(stream);
|
||||
}
|
||||
for (int j = 0; j < 10; j++) {
|
||||
int k = stream.method422();
|
||||
if (k == 0) {
|
||||
break;
|
||||
}
|
||||
anIntArray106[j] = k;
|
||||
anIntArray107[j] = stream.method421();
|
||||
anIntArray108[j] = stream.method422();
|
||||
}
|
||||
|
||||
anInt109 = stream.method422();
|
||||
anInt110 = stream.method422();
|
||||
anInt113 = stream.readUnsignedWord();
|
||||
anInt114 = stream.readUnsignedWord();
|
||||
aClass39_111 = new Class39();
|
||||
aClass29_112 = new Class29();
|
||||
aClass39_111.method545(stream, aClass29_112);
|
||||
}
|
||||
|
||||
public Class6() {
|
||||
anIntArray106 = new int[5];
|
||||
anIntArray107 = new int[5];
|
||||
anIntArray108 = new int[5];
|
||||
anInt110 = 100;
|
||||
anInt113 = 500;
|
||||
}
|
||||
|
||||
private Class29 aClass29_98;
|
||||
private Class29 aClass29_99;
|
||||
private Class29 aClass29_100;
|
||||
private Class29 aClass29_101;
|
||||
private Class29 aClass29_102;
|
||||
private Class29 aClass29_103;
|
||||
private Class29 aClass29_104;
|
||||
private Class29 aClass29_105;
|
||||
private final int[] anIntArray106;
|
||||
private final int[] anIntArray107;
|
||||
private final int[] anIntArray108;
|
||||
private int anInt109;
|
||||
private int anInt110;
|
||||
private Class39 aClass39_111;
|
||||
private Class29 aClass29_112;
|
||||
int anInt113;
|
||||
int anInt114;
|
||||
private static int[] anIntArray115;
|
||||
private static int[] anIntArray116;
|
||||
private static int[] anIntArray117;
|
||||
private static final int[] anIntArray118 = new int[5];
|
||||
private static final int[] anIntArray119 = new int[5];
|
||||
private static final int[] anIntArray120 = new int[5];
|
||||
private static final int[] anIntArray121 = new int[5];
|
||||
private static final int[] anIntArray122 = new int[5];
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
|
||||
public final class Client {
|
||||
|
||||
public static void main(String[] args) {
|
||||
ClientSettings.SERVER_IP = "127.0.0.1";
|
||||
try {
|
||||
Game game = new Game();
|
||||
Game.nodeID = 10;
|
||||
Game.portOff = 0;
|
||||
Game.setHighMem();
|
||||
Game.isMembers = true;
|
||||
Signlink.storeid = 32;
|
||||
Signlink.startpriv(InetAddress.getLocalHost());
|
||||
game.createClientFrame(503, 765);
|
||||
} catch (UnknownHostException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
import java.math.BigInteger;
|
||||
|
||||
/**
|
||||
* ClientSettings
|
||||
* @author Andrew (I'm A Boss on Rune-Server and Mr Extremez on Mopar & Runelocus)
|
||||
*/
|
||||
|
||||
public class ClientSettings {
|
||||
|
||||
public static String SNOW_MONTH = ".12";
|
||||
/**
|
||||
* The Servers Name
|
||||
*/
|
||||
public final static String SERVER_NAME = "2006rebotted";
|
||||
/**
|
||||
* The Servers Website
|
||||
*/
|
||||
public final static String SERVER_WEBSITE = "www.rsrebotted.com";
|
||||
/**
|
||||
* The Servers Ip
|
||||
*
|
||||
* You don't have to change this, the client will automatically connect to the server
|
||||
* on localhost (Assuming you're running Client and LocalGame respectively)
|
||||
*
|
||||
*/
|
||||
public static String SERVER_IP = "127.0.0.1";
|
||||
/**
|
||||
* The Npc Bits for the Server
|
||||
*/
|
||||
public final static int NPC_BITS = 12;
|
||||
/**
|
||||
* The Servers Uid
|
||||
*/
|
||||
public final static int UID = 314268572;
|
||||
|
||||
public static final BigInteger RSA_MODULUS = new BigInteger("91553247461173033466542043374346300088148707506479543786501537350363031301992107112953015516557748875487935404852620239974482067336878286174236183516364787082711186740254168914127361643305190640280157664988536979163450791820893999053469529344247707567448479470137716627440246788713008490213212272520901741443");
|
||||
public static final BigInteger RSA_EXPONENT = new BigInteger("65537");
|
||||
}
|
||||
@@ -0,0 +1,548 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class CollisionMap {
|
||||
|
||||
public CollisionMap() {
|
||||
anInt290 = 0;
|
||||
anInt291 = 0;
|
||||
anInt292 = 104;
|
||||
anInt293 = 104;
|
||||
anIntArrayArray294 = new int[anInt292][anInt293];
|
||||
method210();
|
||||
}
|
||||
|
||||
public void method210() {
|
||||
for (int i = 0; i < anInt292; i++) {
|
||||
for (int j = 0; j < anInt293; j++) {
|
||||
if (i == 0 || j == 0 || i == anInt292 - 1 || j == anInt293 - 1) {
|
||||
anIntArrayArray294[i][j] = 0xffffff;
|
||||
} else {
|
||||
anIntArrayArray294[i][j] = 0x1000000;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void method211(int i, int j, int k, int l, boolean flag) {
|
||||
k -= anInt290;
|
||||
i -= anInt291;
|
||||
if (l == 0) {
|
||||
if (j == 0) {
|
||||
method214(k, i, 128);
|
||||
method214(k - 1, i, 8);
|
||||
}
|
||||
if (j == 1) {
|
||||
method214(k, i, 2);
|
||||
method214(k, i + 1, 32);
|
||||
}
|
||||
if (j == 2) {
|
||||
method214(k, i, 8);
|
||||
method214(k + 1, i, 128);
|
||||
}
|
||||
if (j == 3) {
|
||||
method214(k, i, 32);
|
||||
method214(k, i - 1, 2);
|
||||
}
|
||||
}
|
||||
if (l == 1 || l == 3) {
|
||||
if (j == 0) {
|
||||
method214(k, i, 1);
|
||||
method214(k - 1, i + 1, 16);
|
||||
}
|
||||
if (j == 1) {
|
||||
method214(k, i, 4);
|
||||
method214(k + 1, i + 1, 64);
|
||||
}
|
||||
if (j == 2) {
|
||||
method214(k, i, 16);
|
||||
method214(k + 1, i - 1, 1);
|
||||
}
|
||||
if (j == 3) {
|
||||
method214(k, i, 64);
|
||||
method214(k - 1, i - 1, 4);
|
||||
}
|
||||
}
|
||||
if (l == 2) {
|
||||
if (j == 0) {
|
||||
method214(k, i, 130);
|
||||
method214(k - 1, i, 8);
|
||||
method214(k, i + 1, 32);
|
||||
}
|
||||
if (j == 1) {
|
||||
method214(k, i, 10);
|
||||
method214(k, i + 1, 32);
|
||||
method214(k + 1, i, 128);
|
||||
}
|
||||
if (j == 2) {
|
||||
method214(k, i, 40);
|
||||
method214(k + 1, i, 128);
|
||||
method214(k, i - 1, 2);
|
||||
}
|
||||
if (j == 3) {
|
||||
method214(k, i, 160);
|
||||
method214(k, i - 1, 2);
|
||||
method214(k - 1, i, 8);
|
||||
}
|
||||
}
|
||||
if (flag) {
|
||||
if (l == 0) {
|
||||
if (j == 0) {
|
||||
method214(k, i, 0x10000);
|
||||
method214(k - 1, i, 4096);
|
||||
}
|
||||
if (j == 1) {
|
||||
method214(k, i, 1024);
|
||||
method214(k, i + 1, 16384);
|
||||
}
|
||||
if (j == 2) {
|
||||
method214(k, i, 4096);
|
||||
method214(k + 1, i, 0x10000);
|
||||
}
|
||||
if (j == 3) {
|
||||
method214(k, i, 16384);
|
||||
method214(k, i - 1, 1024);
|
||||
}
|
||||
}
|
||||
if (l == 1 || l == 3) {
|
||||
if (j == 0) {
|
||||
method214(k, i, 512);
|
||||
method214(k - 1, i + 1, 8192);
|
||||
}
|
||||
if (j == 1) {
|
||||
method214(k, i, 2048);
|
||||
method214(k + 1, i + 1, 32768);
|
||||
}
|
||||
if (j == 2) {
|
||||
method214(k, i, 8192);
|
||||
method214(k + 1, i - 1, 512);
|
||||
}
|
||||
if (j == 3) {
|
||||
method214(k, i, 32768);
|
||||
method214(k - 1, i - 1, 2048);
|
||||
}
|
||||
}
|
||||
if (l == 2) {
|
||||
if (j == 0) {
|
||||
method214(k, i, 0x10400);
|
||||
method214(k - 1, i, 4096);
|
||||
method214(k, i + 1, 16384);
|
||||
}
|
||||
if (j == 1) {
|
||||
method214(k, i, 5120);
|
||||
method214(k, i + 1, 16384);
|
||||
method214(k + 1, i, 0x10000);
|
||||
}
|
||||
if (j == 2) {
|
||||
method214(k, i, 20480);
|
||||
method214(k + 1, i, 0x10000);
|
||||
method214(k, i - 1, 1024);
|
||||
}
|
||||
if (j == 3) {
|
||||
method214(k, i, 0x14000);
|
||||
method214(k, i - 1, 1024);
|
||||
method214(k - 1, i, 4096);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void method212(boolean flag, int j, int k, int l, int i1, int j1) {
|
||||
int k1 = 256;
|
||||
if (flag) {
|
||||
k1 += 0x20000;
|
||||
}
|
||||
l -= anInt290;
|
||||
i1 -= anInt291;
|
||||
if (j1 == 1 || j1 == 3) {
|
||||
int l1 = j;
|
||||
j = k;
|
||||
k = l1;
|
||||
}
|
||||
for (int i2 = l; i2 < l + j; i2++) {
|
||||
if (i2 >= 0 && i2 < anInt292) {
|
||||
for (int j2 = i1; j2 < i1 + k; j2++) {
|
||||
if (j2 >= 0 && j2 < anInt293) {
|
||||
method214(i2, j2, k1);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void method213(int i, int k) {
|
||||
k -= anInt290;
|
||||
i -= anInt291;
|
||||
anIntArrayArray294[k][i] |= 0x200000;
|
||||
}
|
||||
|
||||
private void method214(int i, int j, int k) {
|
||||
anIntArrayArray294[i][j] |= k;
|
||||
}
|
||||
|
||||
public void method215(int i, int j, boolean flag, int k, int l) {
|
||||
k -= anInt290;
|
||||
l -= anInt291;
|
||||
if (j == 0) {
|
||||
if (i == 0) {
|
||||
method217(128, k, l);
|
||||
method217(8, k - 1, l);
|
||||
}
|
||||
if (i == 1) {
|
||||
method217(2, k, l);
|
||||
method217(32, k, l + 1);
|
||||
}
|
||||
if (i == 2) {
|
||||
method217(8, k, l);
|
||||
method217(128, k + 1, l);
|
||||
}
|
||||
if (i == 3) {
|
||||
method217(32, k, l);
|
||||
method217(2, k, l - 1);
|
||||
}
|
||||
}
|
||||
if (j == 1 || j == 3) {
|
||||
if (i == 0) {
|
||||
method217(1, k, l);
|
||||
method217(16, k - 1, l + 1);
|
||||
}
|
||||
if (i == 1) {
|
||||
method217(4, k, l);
|
||||
method217(64, k + 1, l + 1);
|
||||
}
|
||||
if (i == 2) {
|
||||
method217(16, k, l);
|
||||
method217(1, k + 1, l - 1);
|
||||
}
|
||||
if (i == 3) {
|
||||
method217(64, k, l);
|
||||
method217(4, k - 1, l - 1);
|
||||
}
|
||||
}
|
||||
if (j == 2) {
|
||||
if (i == 0) {
|
||||
method217(130, k, l);
|
||||
method217(8, k - 1, l);
|
||||
method217(32, k, l + 1);
|
||||
}
|
||||
if (i == 1) {
|
||||
method217(10, k, l);
|
||||
method217(32, k, l + 1);
|
||||
method217(128, k + 1, l);
|
||||
}
|
||||
if (i == 2) {
|
||||
method217(40, k, l);
|
||||
method217(128, k + 1, l);
|
||||
method217(2, k, l - 1);
|
||||
}
|
||||
if (i == 3) {
|
||||
method217(160, k, l);
|
||||
method217(2, k, l - 1);
|
||||
method217(8, k - 1, l);
|
||||
}
|
||||
}
|
||||
if (flag) {
|
||||
if (j == 0) {
|
||||
if (i == 0) {
|
||||
method217(0x10000, k, l);
|
||||
method217(4096, k - 1, l);
|
||||
}
|
||||
if (i == 1) {
|
||||
method217(1024, k, l);
|
||||
method217(16384, k, l + 1);
|
||||
}
|
||||
if (i == 2) {
|
||||
method217(4096, k, l);
|
||||
method217(0x10000, k + 1, l);
|
||||
}
|
||||
if (i == 3) {
|
||||
method217(16384, k, l);
|
||||
method217(1024, k, l - 1);
|
||||
}
|
||||
}
|
||||
if (j == 1 || j == 3) {
|
||||
if (i == 0) {
|
||||
method217(512, k, l);
|
||||
method217(8192, k - 1, l + 1);
|
||||
}
|
||||
if (i == 1) {
|
||||
method217(2048, k, l);
|
||||
method217(32768, k + 1, l + 1);
|
||||
}
|
||||
if (i == 2) {
|
||||
method217(8192, k, l);
|
||||
method217(512, k + 1, l - 1);
|
||||
}
|
||||
if (i == 3) {
|
||||
method217(32768, k, l);
|
||||
method217(2048, k - 1, l - 1);
|
||||
}
|
||||
}
|
||||
if (j == 2) {
|
||||
if (i == 0) {
|
||||
method217(0x10400, k, l);
|
||||
method217(4096, k - 1, l);
|
||||
method217(16384, k, l + 1);
|
||||
}
|
||||
if (i == 1) {
|
||||
method217(5120, k, l);
|
||||
method217(16384, k, l + 1);
|
||||
method217(0x10000, k + 1, l);
|
||||
}
|
||||
if (i == 2) {
|
||||
method217(20480, k, l);
|
||||
method217(0x10000, k + 1, l);
|
||||
method217(1024, k, l - 1);
|
||||
}
|
||||
if (i == 3) {
|
||||
method217(0x14000, k, l);
|
||||
method217(1024, k, l - 1);
|
||||
method217(4096, k - 1, l);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void method216(int i, int j, int k, int l, int i1, boolean flag) {
|
||||
int j1 = 256;
|
||||
if (flag) {
|
||||
j1 += 0x20000;
|
||||
}
|
||||
k -= anInt290;
|
||||
l -= anInt291;
|
||||
if (i == 1 || i == 3) {
|
||||
int k1 = j;
|
||||
j = i1;
|
||||
i1 = k1;
|
||||
}
|
||||
for (int l1 = k; l1 < k + j; l1++) {
|
||||
if (l1 >= 0 && l1 < anInt292) {
|
||||
for (int i2 = l; i2 < l + i1; i2++) {
|
||||
if (i2 >= 0 && i2 < anInt293) {
|
||||
method217(j1, l1, i2);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void method217(int i, int j, int k) {
|
||||
anIntArrayArray294[j][k] &= 0xffffff - i;
|
||||
}
|
||||
|
||||
public void method218(int j, int k) {
|
||||
k -= anInt290;
|
||||
j -= anInt291;
|
||||
anIntArrayArray294[k][j] &= 0xdfffff;
|
||||
}
|
||||
|
||||
public boolean method219(int i, int j, int k, int i1, int j1, int k1) {
|
||||
if (j == i && k == k1) {
|
||||
return true;
|
||||
}
|
||||
j -= anInt290;
|
||||
k -= anInt291;
|
||||
i -= anInt290;
|
||||
k1 -= anInt291;
|
||||
if (j1 == 0) {
|
||||
if (i1 == 0) {
|
||||
if (j == i - 1 && k == k1) {
|
||||
return true;
|
||||
}
|
||||
if (j == i && k == k1 + 1 && (anIntArrayArray294[j][k] & 0x1280120) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (j == i && k == k1 - 1 && (anIntArrayArray294[j][k] & 0x1280102) == 0) {
|
||||
return true;
|
||||
}
|
||||
} else if (i1 == 1) {
|
||||
if (j == i && k == k1 + 1) {
|
||||
return true;
|
||||
}
|
||||
if (j == i - 1 && k == k1 && (anIntArrayArray294[j][k] & 0x1280108) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (j == i + 1 && k == k1 && (anIntArrayArray294[j][k] & 0x1280180) == 0) {
|
||||
return true;
|
||||
}
|
||||
} else if (i1 == 2) {
|
||||
if (j == i + 1 && k == k1) {
|
||||
return true;
|
||||
}
|
||||
if (j == i && k == k1 + 1 && (anIntArrayArray294[j][k] & 0x1280120) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (j == i && k == k1 - 1 && (anIntArrayArray294[j][k] & 0x1280102) == 0) {
|
||||
return true;
|
||||
}
|
||||
} else if (i1 == 3) {
|
||||
if (j == i && k == k1 - 1) {
|
||||
return true;
|
||||
}
|
||||
if (j == i - 1 && k == k1 && (anIntArrayArray294[j][k] & 0x1280108) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (j == i + 1 && k == k1 && (anIntArrayArray294[j][k] & 0x1280180) == 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (j1 == 2) {
|
||||
if (i1 == 0) {
|
||||
if (j == i - 1 && k == k1) {
|
||||
return true;
|
||||
}
|
||||
if (j == i && k == k1 + 1) {
|
||||
return true;
|
||||
}
|
||||
if (j == i + 1 && k == k1 && (anIntArrayArray294[j][k] & 0x1280180) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (j == i && k == k1 - 1 && (anIntArrayArray294[j][k] & 0x1280102) == 0) {
|
||||
return true;
|
||||
}
|
||||
} else if (i1 == 1) {
|
||||
if (j == i - 1 && k == k1 && (anIntArrayArray294[j][k] & 0x1280108) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (j == i && k == k1 + 1) {
|
||||
return true;
|
||||
}
|
||||
if (j == i + 1 && k == k1) {
|
||||
return true;
|
||||
}
|
||||
if (j == i && k == k1 - 1 && (anIntArrayArray294[j][k] & 0x1280102) == 0) {
|
||||
return true;
|
||||
}
|
||||
} else if (i1 == 2) {
|
||||
if (j == i - 1 && k == k1 && (anIntArrayArray294[j][k] & 0x1280108) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (j == i && k == k1 + 1 && (anIntArrayArray294[j][k] & 0x1280120) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (j == i + 1 && k == k1) {
|
||||
return true;
|
||||
}
|
||||
if (j == i && k == k1 - 1) {
|
||||
return true;
|
||||
}
|
||||
} else if (i1 == 3) {
|
||||
if (j == i - 1 && k == k1) {
|
||||
return true;
|
||||
}
|
||||
if (j == i && k == k1 + 1 && (anIntArrayArray294[j][k] & 0x1280120) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (j == i + 1 && k == k1 && (anIntArrayArray294[j][k] & 0x1280180) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (j == i && k == k1 - 1) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (j1 == 9) {
|
||||
if (j == i && k == k1 + 1 && (anIntArrayArray294[j][k] & 0x20) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (j == i && k == k1 - 1 && (anIntArrayArray294[j][k] & 2) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (j == i - 1 && k == k1 && (anIntArrayArray294[j][k] & 8) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (j == i + 1 && k == k1 && (anIntArrayArray294[j][k] & 0x80) == 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean method220(int i, int j, int k, int l, int i1, int j1) {
|
||||
if (j1 == i && k == j) {
|
||||
return true;
|
||||
}
|
||||
j1 -= anInt290;
|
||||
k -= anInt291;
|
||||
i -= anInt290;
|
||||
j -= anInt291;
|
||||
if (l == 6 || l == 7) {
|
||||
if (l == 7) {
|
||||
i1 = i1 + 2 & 3;
|
||||
}
|
||||
if (i1 == 0) {
|
||||
if (j1 == i + 1 && k == j && (anIntArrayArray294[j1][k] & 0x80) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (j1 == i && k == j - 1 && (anIntArrayArray294[j1][k] & 2) == 0) {
|
||||
return true;
|
||||
}
|
||||
} else if (i1 == 1) {
|
||||
if (j1 == i - 1 && k == j && (anIntArrayArray294[j1][k] & 8) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (j1 == i && k == j - 1 && (anIntArrayArray294[j1][k] & 2) == 0) {
|
||||
return true;
|
||||
}
|
||||
} else if (i1 == 2) {
|
||||
if (j1 == i - 1 && k == j && (anIntArrayArray294[j1][k] & 8) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (j1 == i && k == j + 1 && (anIntArrayArray294[j1][k] & 0x20) == 0) {
|
||||
return true;
|
||||
}
|
||||
} else if (i1 == 3) {
|
||||
if (j1 == i + 1 && k == j && (anIntArrayArray294[j1][k] & 0x80) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (j1 == i && k == j + 1 && (anIntArrayArray294[j1][k] & 0x20) == 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (l == 8) {
|
||||
if (j1 == i && k == j + 1 && (anIntArrayArray294[j1][k] & 0x20) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (j1 == i && k == j - 1 && (anIntArrayArray294[j1][k] & 2) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (j1 == i - 1 && k == j && (anIntArrayArray294[j1][k] & 8) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (j1 == i + 1 && k == j && (anIntArrayArray294[j1][k] & 0x80) == 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean method221(int i, int j, int k, int l, int i1, int j1, int k1) {
|
||||
int l1 = j + j1 - 1;
|
||||
int i2 = i + l - 1;
|
||||
if (k >= j && k <= l1 && k1 >= i && k1 <= i2) {
|
||||
return true;
|
||||
}
|
||||
if (k == j - 1 && k1 >= i && k1 <= i2 && (anIntArrayArray294[k - anInt290][k1 - anInt291] & 8) == 0 && (i1 & 8) == 0) {
|
||||
return true;
|
||||
}
|
||||
if (k == l1 + 1 && k1 >= i && k1 <= i2 && (anIntArrayArray294[k - anInt290][k1 - anInt291] & 0x80) == 0 && (i1 & 2) == 0) {
|
||||
return true;
|
||||
}
|
||||
return k1 == i - 1 && k >= j && k <= l1 && (anIntArrayArray294[k - anInt290][k1 - anInt291] & 2) == 0 && (i1 & 4) == 0 || k1 == i2 + 1 && k >= j && k <= l1 && (anIntArrayArray294[k - anInt290][k1 - anInt291] & 0x20) == 0 && (i1 & 1) == 0;
|
||||
}
|
||||
|
||||
private final int anInt290;
|
||||
private final int anInt291;
|
||||
private final int anInt292;
|
||||
private final int anInt293;
|
||||
public final int[][] anIntArrayArray294;
|
||||
}
|
||||
@@ -0,0 +1,198 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.RandomAccessFile;
|
||||
|
||||
final class Decompressor {
|
||||
|
||||
public Decompressor(RandomAccessFile randomaccessfile, RandomAccessFile randomaccessfile1, int j) {
|
||||
anInt311 = j;
|
||||
dataFile = randomaccessfile;
|
||||
indexFile = randomaccessfile1;
|
||||
}
|
||||
|
||||
public synchronized byte[] decompress(int i) {
|
||||
try {
|
||||
seekTo(indexFile, i * 6);
|
||||
int l;
|
||||
for (int j = 0; j < 6; j += l) {
|
||||
l = indexFile.read(buffer, j, 6 - j);
|
||||
if (l == -1) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
int i1 = ((buffer[0] & 0xff) << 16) + ((buffer[1] & 0xff) << 8) + (buffer[2] & 0xff);
|
||||
int j1 = ((buffer[3] & 0xff) << 16) + ((buffer[4] & 0xff) << 8) + (buffer[5] & 0xff);
|
||||
// if(i1 < 0 || i1 > 0x7a120)
|
||||
// return null;
|
||||
if (j1 <= 0 || j1 > dataFile.length() / 520L) {
|
||||
return null;
|
||||
}
|
||||
byte abyte0[] = new byte[i1];
|
||||
int k1 = 0;
|
||||
for (int l1 = 0; k1 < i1; l1++) {
|
||||
if (j1 == 0) {
|
||||
return null;
|
||||
}
|
||||
seekTo(dataFile, j1 * 520);
|
||||
int k = 0;
|
||||
int i2 = i1 - k1;
|
||||
if (i2 > 512) {
|
||||
i2 = 512;
|
||||
}
|
||||
int j2;
|
||||
for (; k < i2 + 8; k += j2) {
|
||||
j2 = dataFile.read(buffer, k, i2 + 8 - k);
|
||||
if (j2 == -1) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
int k2 = ((buffer[0] & 0xff) << 8) + (buffer[1] & 0xff);
|
||||
int l2 = ((buffer[2] & 0xff) << 8) + (buffer[3] & 0xff);
|
||||
int i3 = ((buffer[4] & 0xff) << 16) + ((buffer[5] & 0xff) << 8) + (buffer[6] & 0xff);
|
||||
int j3 = buffer[7] & 0xff;
|
||||
if (k2 != i || l2 != l1 || j3 != anInt311) {
|
||||
return null;
|
||||
}
|
||||
if (i3 < 0 || i3 > dataFile.length() / 520L) {
|
||||
return null;
|
||||
}
|
||||
for (int k3 = 0; k3 < i2; k3++) {
|
||||
abyte0[k1++] = buffer[k3 + 8];
|
||||
}
|
||||
|
||||
j1 = i3;
|
||||
}
|
||||
|
||||
return abyte0;
|
||||
} catch (IOException _ex) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized boolean method234(int i, byte abyte0[], int j)
|
||||
{
|
||||
boolean flag = method235(true, j, i, abyte0);
|
||||
if(!flag)
|
||||
flag = method235(false, j, i, abyte0);
|
||||
return flag;
|
||||
}
|
||||
|
||||
private synchronized boolean method235(boolean flag, int j, int k, byte abyte0[]) {
|
||||
try {
|
||||
int l;
|
||||
if (flag) {
|
||||
seekTo(indexFile, j * 6);
|
||||
int k1;
|
||||
for (int i1 = 0; i1 < 6; i1 += k1) {
|
||||
k1 = indexFile.read(buffer, i1, 6 - i1);
|
||||
if (k1 == -1) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
l = ((buffer[3] & 0xff) << 16) + ((buffer[4] & 0xff) << 8) + (buffer[5] & 0xff);
|
||||
if (l <= 0 || l > dataFile.length() / 520L) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
l = (int) ((dataFile.length() + 519L) / 520L);
|
||||
if (l == 0) {
|
||||
l = 1;
|
||||
}
|
||||
}
|
||||
buffer[0] = (byte) (k >> 16);
|
||||
buffer[1] = (byte) (k >> 8);
|
||||
buffer[2] = (byte) k;
|
||||
buffer[3] = (byte) (l >> 16);
|
||||
buffer[4] = (byte) (l >> 8);
|
||||
buffer[5] = (byte) l;
|
||||
seekTo(indexFile, j * 6);
|
||||
indexFile.write(buffer, 0, 6);
|
||||
int j1 = 0;
|
||||
for (int l1 = 0; j1 < k; l1++) {
|
||||
int i2 = 0;
|
||||
if (flag) {
|
||||
seekTo(dataFile, l * 520);
|
||||
int j2;
|
||||
int l2;
|
||||
for (j2 = 0; j2 < 8; j2 += l2) {
|
||||
l2 = dataFile.read(buffer, j2, 8 - j2);
|
||||
if (l2 == -1) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (j2 == 8) {
|
||||
int i3 = ((buffer[0] & 0xff) << 8) + (buffer[1] & 0xff);
|
||||
int j3 = ((buffer[2] & 0xff) << 8) + (buffer[3] & 0xff);
|
||||
i2 = ((buffer[4] & 0xff) << 16) + ((buffer[5] & 0xff) << 8) + (buffer[6] & 0xff);
|
||||
int k3 = buffer[7] & 0xff;
|
||||
if (i3 != j || j3 != l1 || k3 != anInt311) {
|
||||
return false;
|
||||
}
|
||||
if (i2 < 0 || i2 > dataFile.length() / 520L) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (i2 == 0) {
|
||||
flag = false;
|
||||
i2 = (int) ((dataFile.length() + 519L) / 520L);
|
||||
if (i2 == 0) {
|
||||
i2++;
|
||||
}
|
||||
if (i2 == l) {
|
||||
i2++;
|
||||
}
|
||||
}
|
||||
if (k - j1 <= 512) {
|
||||
i2 = 0;
|
||||
}
|
||||
buffer[0] = (byte) (j >> 8);
|
||||
buffer[1] = (byte) j;
|
||||
buffer[2] = (byte) (l1 >> 8);
|
||||
buffer[3] = (byte) l1;
|
||||
buffer[4] = (byte) (i2 >> 16);
|
||||
buffer[5] = (byte) (i2 >> 8);
|
||||
buffer[6] = (byte) i2;
|
||||
buffer[7] = (byte) anInt311;
|
||||
seekTo(dataFile, l * 520);
|
||||
dataFile.write(buffer, 0, 8);
|
||||
int k2 = k - j1;
|
||||
if (k2 > 512) {
|
||||
k2 = 512;
|
||||
}
|
||||
dataFile.write(abyte0, j1, k2);
|
||||
j1 += k2;
|
||||
l = i2;
|
||||
}
|
||||
|
||||
return true;
|
||||
} catch (IOException _ex) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private synchronized void seekTo(RandomAccessFile randomaccessfile, int j) throws IOException {
|
||||
if (j < 0 || j > 0x3c00000) {
|
||||
System.out.println("Badseek - pos:" + j + " len:" + randomaccessfile.length());
|
||||
j = 0x3c00000;
|
||||
try {
|
||||
Thread.sleep(1000L);
|
||||
} catch (Exception _ex) {
|
||||
}
|
||||
}
|
||||
randomaccessfile.seek(j);
|
||||
}
|
||||
|
||||
private static final byte[] buffer = new byte[520];
|
||||
private final RandomAccessFile dataFile;
|
||||
private final RandomAccessFile indexFile;
|
||||
private final int anInt311;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,233 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public class DrawingArea extends NodeSub {
|
||||
|
||||
public static void initDrawingArea(int i, int j, int ai[]) {
|
||||
pixels = ai;
|
||||
width = j;
|
||||
height = i;
|
||||
setDrawingArea(i, 0, j, 0);
|
||||
}
|
||||
|
||||
public static void defaultDrawingAreaSize() {
|
||||
topX = 0;
|
||||
topY = 0;
|
||||
bottomX = width;
|
||||
bottomY = height;
|
||||
centerX = bottomX - 1;
|
||||
centerY = bottomX / 2;
|
||||
}
|
||||
|
||||
public static void setDrawingArea(int i, int j, int k, int l) {
|
||||
if (j < 0) {
|
||||
j = 0;
|
||||
}
|
||||
if (l < 0) {
|
||||
l = 0;
|
||||
}
|
||||
if (k > width) {
|
||||
k = width;
|
||||
}
|
||||
if (i > height) {
|
||||
i = height;
|
||||
}
|
||||
topX = j;
|
||||
topY = l;
|
||||
bottomX = k;
|
||||
bottomY = i;
|
||||
centerX = bottomX - 1;
|
||||
centerY = bottomX / 2;
|
||||
anInt1387 = bottomY / 2;
|
||||
}
|
||||
|
||||
public static void setAllPixelsToZero() {
|
||||
int i = width * height;
|
||||
for (int j = 0; j < i; j++) {
|
||||
pixels[j] = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void method335(int i, int j, int k, int l, int i1, int k1) {
|
||||
if (k1 < topX) {
|
||||
k -= topX - k1;
|
||||
k1 = topX;
|
||||
}
|
||||
if (j < topY) {
|
||||
l -= topY - j;
|
||||
j = topY;
|
||||
}
|
||||
if (k1 + k > bottomX) {
|
||||
k = bottomX - k1;
|
||||
}
|
||||
if (j + l > bottomY) {
|
||||
l = bottomY - j;
|
||||
}
|
||||
int l1 = 256 - i1;
|
||||
int i2 = (i >> 16 & 0xff) * i1;
|
||||
int j2 = (i >> 8 & 0xff) * i1;
|
||||
int k2 = (i & 0xff) * i1;
|
||||
int k3 = width - k;
|
||||
int l3 = k1 + j * width;
|
||||
for (int i4 = 0; i4 < l; i4++) {
|
||||
for (int j4 = -k; j4 < 0; j4++) {
|
||||
int l2 = (pixels[l3] >> 16 & 0xff) * l1;
|
||||
int i3 = (pixels[l3] >> 8 & 0xff) * l1;
|
||||
int j3 = (pixels[l3] & 0xff) * l1;
|
||||
int k4 = (i2 + l2 >> 8 << 16) + (j2 + i3 >> 8 << 8) + (k2 + j3 >> 8);
|
||||
pixels[l3++] = k4;
|
||||
}
|
||||
|
||||
l3 += k3;
|
||||
}
|
||||
}
|
||||
|
||||
public static void method336(int i, int j, int l, int i1, int k) {
|
||||
if (k < topX) {
|
||||
i1 -= topX - k;
|
||||
k = topX;
|
||||
}
|
||||
if (j < topY) {
|
||||
i -= topY - j;
|
||||
j = topY;
|
||||
}
|
||||
if (k + i1 > bottomX) {
|
||||
i1 = bottomX - k;
|
||||
}
|
||||
if (j + i > bottomY) {
|
||||
i = bottomY - j;
|
||||
}
|
||||
int k1 = width - i1;
|
||||
int l1 = k + j * width;
|
||||
for (int i2 = -i; i2 < 0; i2++) {
|
||||
for (int j2 = -i1; j2 < 0; j2++) {
|
||||
pixels[l1++] = l;
|
||||
}
|
||||
|
||||
l1 += k1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void fillPixels(int i1, int k, int l, int i, int j) {
|
||||
method339(i1, l, j, i);
|
||||
method339(i1 + k - 1, l, j, i);
|
||||
method341(i1, l, k, i);
|
||||
method341(i1, l, k, i + j - 1);
|
||||
}
|
||||
|
||||
public static void method338(int i, int j, int k, int l, int i1, int j1) {
|
||||
method340(l, i1, i, k, j1);
|
||||
method340(l, i1, i + j - 1, k, j1);
|
||||
if (j >= 3) {
|
||||
method342(l, j1, k, i + 1, j - 2);
|
||||
method342(l, j1 + i1 - 1, k, i + 1, j - 2);
|
||||
}
|
||||
}
|
||||
|
||||
public static void method339(int i, int j, int k, int l) {
|
||||
if (i < topY || i >= bottomY) {
|
||||
return;
|
||||
}
|
||||
if (l < topX) {
|
||||
k -= topX - l;
|
||||
l = topX;
|
||||
}
|
||||
if (l + k > bottomX) {
|
||||
k = bottomX - l;
|
||||
}
|
||||
int i1 = l + i * width;
|
||||
for (int j1 = 0; j1 < k; j1++) {
|
||||
pixels[i1 + j1] = j;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static void method340(int i, int j, int k, int l, int i1) {
|
||||
if (k < topY || k >= bottomY) {
|
||||
return;
|
||||
}
|
||||
if (i1 < topX) {
|
||||
j -= topX - i1;
|
||||
i1 = topX;
|
||||
}
|
||||
if (i1 + j > bottomX) {
|
||||
j = bottomX - i1;
|
||||
}
|
||||
int j1 = 256 - l;
|
||||
int k1 = (i >> 16 & 0xff) * l;
|
||||
int l1 = (i >> 8 & 0xff) * l;
|
||||
int i2 = (i & 0xff) * l;
|
||||
int i3 = i1 + k * width;
|
||||
for (int j3 = 0; j3 < j; j3++) {
|
||||
int j2 = (pixels[i3] >> 16 & 0xff) * j1;
|
||||
int k2 = (pixels[i3] >> 8 & 0xff) * j1;
|
||||
int l2 = (pixels[i3] & 0xff) * j1;
|
||||
int k3 = (k1 + j2 >> 8 << 16) + (l1 + k2 >> 8 << 8) + (i2 + l2 >> 8);
|
||||
pixels[i3++] = k3;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void method341(int i, int j, int k, int l) {
|
||||
if (l < topX || l >= bottomX) {
|
||||
return;
|
||||
}
|
||||
if (i < topY) {
|
||||
k -= topY - i;
|
||||
i = topY;
|
||||
}
|
||||
if (i + k > bottomY) {
|
||||
k = bottomY - i;
|
||||
}
|
||||
int j1 = l + i * width;
|
||||
for (int k1 = 0; k1 < k; k1++) {
|
||||
pixels[j1 + k1 * width] = j;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static void method342(int i, int j, int k, int l, int i1) {
|
||||
if (j < topX || j >= bottomX) {
|
||||
return;
|
||||
}
|
||||
if (l < topY) {
|
||||
i1 -= topY - l;
|
||||
l = topY;
|
||||
}
|
||||
if (l + i1 > bottomY) {
|
||||
i1 = bottomY - l;
|
||||
}
|
||||
int j1 = 256 - k;
|
||||
int k1 = (i >> 16 & 0xff) * k;
|
||||
int l1 = (i >> 8 & 0xff) * k;
|
||||
int i2 = (i & 0xff) * k;
|
||||
int i3 = j + l * width;
|
||||
for (int j3 = 0; j3 < i1; j3++) {
|
||||
int j2 = (pixels[i3] >> 16 & 0xff) * j1;
|
||||
int k2 = (pixels[i3] >> 8 & 0xff) * j1;
|
||||
int l2 = (pixels[i3] & 0xff) * j1;
|
||||
int k3 = (k1 + j2 >> 8 << 16) + (l1 + k2 >> 8 << 8) + (i2 + l2 >> 8);
|
||||
pixels[i3] = k3;
|
||||
i3 += width;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
DrawingArea() {
|
||||
}
|
||||
|
||||
public static int pixels[];
|
||||
public static int width;
|
||||
public static int height;
|
||||
public static int topY;
|
||||
public static int bottomY;
|
||||
public static int topX;
|
||||
public static int bottomX;
|
||||
public static int centerX;
|
||||
public static int centerY;
|
||||
public static int anInt1387;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public final class DummyClass {
|
||||
|
||||
public DummyClass() {
|
||||
}
|
||||
|
||||
public static DummyClass cache[];
|
||||
}
|
||||
@@ -0,0 +1,190 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public class Entity extends Animable {
|
||||
|
||||
public final void setPos(int i, int j, boolean flag) {
|
||||
if (anim != -1 && Animation.anims[anim].anInt364 == 1) {
|
||||
anim = -1;
|
||||
}
|
||||
if (!flag) {
|
||||
int k = i - smallX[0];
|
||||
int l = j - smallY[0];
|
||||
if (k >= -8 && k <= 8 && l >= -8 && l <= 8) {
|
||||
if (smallXYIndex < 9) {
|
||||
smallXYIndex++;
|
||||
}
|
||||
for (int i1 = smallXYIndex; i1 > 0; i1--) {
|
||||
smallX[i1] = smallX[i1 - 1];
|
||||
smallY[i1] = smallY[i1 - 1];
|
||||
aBooleanArray1553[i1] = aBooleanArray1553[i1 - 1];
|
||||
}
|
||||
|
||||
smallX[0] = i;
|
||||
smallY[0] = j;
|
||||
aBooleanArray1553[0] = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
smallXYIndex = 0;
|
||||
anInt1542 = 0;
|
||||
anInt1503 = 0;
|
||||
smallX[0] = i;
|
||||
smallY[0] = j;
|
||||
x = smallX[0] * 128 + anInt1540 * 64;
|
||||
y = smallY[0] * 128 + anInt1540 * 64;
|
||||
}
|
||||
|
||||
public final void method446() {
|
||||
smallXYIndex = 0;
|
||||
anInt1542 = 0;
|
||||
}
|
||||
|
||||
public final void updateHitData(int j, int k, int l) {
|
||||
for (int i1 = 0; i1 < 4; i1++) {
|
||||
if (hitsLoopCycle[i1] <= l) {
|
||||
hitArray[i1] = k;
|
||||
hitMarkTypes[i1] = j;
|
||||
hitsLoopCycle[i1] = l + 70;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public final void moveInDir(boolean flag, int i) {
|
||||
int j = smallX[0];
|
||||
int k = smallY[0];
|
||||
if (i == 0) {
|
||||
j--;
|
||||
k++;
|
||||
}
|
||||
if (i == 1) {
|
||||
k++;
|
||||
}
|
||||
if (i == 2) {
|
||||
j++;
|
||||
k++;
|
||||
}
|
||||
if (i == 3) {
|
||||
j--;
|
||||
}
|
||||
if (i == 4) {
|
||||
j++;
|
||||
}
|
||||
if (i == 5) {
|
||||
j--;
|
||||
k--;
|
||||
}
|
||||
if (i == 6) {
|
||||
k--;
|
||||
}
|
||||
if (i == 7) {
|
||||
j++;
|
||||
k--;
|
||||
}
|
||||
if (anim != -1 && Animation.anims[anim].anInt364 == 1) {
|
||||
anim = -1;
|
||||
}
|
||||
if (smallXYIndex < 9) {
|
||||
smallXYIndex++;
|
||||
}
|
||||
for (int l = smallXYIndex; l > 0; l--) {
|
||||
smallX[l] = smallX[l - 1];
|
||||
smallY[l] = smallY[l - 1];
|
||||
aBooleanArray1553[l] = aBooleanArray1553[l - 1];
|
||||
}
|
||||
smallX[0] = j;
|
||||
smallY[0] = k;
|
||||
aBooleanArray1553[0] = flag;
|
||||
}
|
||||
|
||||
public int entScreenX;
|
||||
public int entScreenY;
|
||||
public final int index = -1;
|
||||
public boolean isVisible() {
|
||||
return false;
|
||||
}
|
||||
|
||||
Entity() {
|
||||
smallX = new int[10];
|
||||
smallY = new int[10];
|
||||
interactingEntity = -1;
|
||||
anInt1504 = 32;
|
||||
anInt1505 = -1;
|
||||
height = 200;
|
||||
anInt1511 = -1;
|
||||
anInt1512 = -1;
|
||||
hitArray = new int[4];
|
||||
hitMarkTypes = new int[4];
|
||||
hitsLoopCycle = new int[4];
|
||||
anInt1517 = -1;
|
||||
anInt1520 = -1;
|
||||
anim = -1;
|
||||
loopCycleStatus = -1000;
|
||||
textCycle = 100;
|
||||
anInt1540 = 1;
|
||||
aBoolean1541 = false;
|
||||
aBooleanArray1553 = new boolean[10];
|
||||
anInt1554 = -1;
|
||||
anInt1555 = -1;
|
||||
anInt1556 = -1;
|
||||
anInt1557 = -1;
|
||||
}
|
||||
|
||||
public final int[] smallX;
|
||||
public final int[] smallY;
|
||||
public int interactingEntity;
|
||||
int anInt1503;
|
||||
int anInt1504;
|
||||
int anInt1505;
|
||||
public String textSpoken;
|
||||
public int height;
|
||||
public int turnDirection;
|
||||
int anInt1511;
|
||||
int anInt1512;
|
||||
int anInt1513;
|
||||
final int[] hitArray;
|
||||
final int[] hitMarkTypes;
|
||||
final int[] hitsLoopCycle;
|
||||
int anInt1517;
|
||||
int anInt1518;
|
||||
int anInt1519;
|
||||
int anInt1520;
|
||||
int anInt1521;
|
||||
int anInt1522;
|
||||
int anInt1523;
|
||||
int anInt1524;
|
||||
int smallXYIndex;
|
||||
public int anim;
|
||||
int anInt1527;
|
||||
int anInt1528;
|
||||
int anInt1529;
|
||||
int anInt1530;
|
||||
int anInt1531;
|
||||
public int loopCycleStatus;
|
||||
public int currentHealth;
|
||||
public int maxHealth;
|
||||
int textCycle;
|
||||
int anInt1537;
|
||||
int anInt1538;
|
||||
int anInt1539;
|
||||
int anInt1540;
|
||||
boolean aBoolean1541;
|
||||
int anInt1542;
|
||||
int anInt1543;
|
||||
int anInt1544;
|
||||
int anInt1545;
|
||||
int anInt1546;
|
||||
int anInt1547;
|
||||
int anInt1548;
|
||||
int anInt1549;
|
||||
public int x;
|
||||
public int y;
|
||||
int anInt1552;
|
||||
final boolean[] aBooleanArray1553;
|
||||
int anInt1554;
|
||||
int anInt1555;
|
||||
int anInt1556;
|
||||
int anInt1557;
|
||||
}
|
||||
@@ -0,0 +1,334 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public final class EntityDef {
|
||||
|
||||
public static EntityDef forID(int i) {
|
||||
for (int j = 0; j < 20; j++) {
|
||||
if (cache[j].type == i) {
|
||||
return cache[j];
|
||||
}
|
||||
}
|
||||
|
||||
anInt56 = (anInt56 + 1) % 20;
|
||||
EntityDef entityDef = cache[anInt56] = new EntityDef();
|
||||
stream.currentOffset = streamIndices[i];
|
||||
entityDef.type = i;
|
||||
entityDef.readValues(stream);
|
||||
switch(i) {
|
||||
case 2258 :
|
||||
entityDef.actions = new String[5];
|
||||
entityDef.actions[0] = "Talk-to";
|
||||
entityDef.actions[2] = "Trade";
|
||||
entityDef.actions[3] = "Teleport";
|
||||
break;
|
||||
|
||||
case 945:
|
||||
entityDef.name = "2006Redone Guide";
|
||||
break;
|
||||
}
|
||||
return entityDef;
|
||||
}
|
||||
|
||||
public Model method160() {
|
||||
if (childrenIDs != null) {
|
||||
EntityDef entityDef = method161();
|
||||
if (entityDef == null) {
|
||||
return null;
|
||||
} else {
|
||||
return entityDef.method160();
|
||||
}
|
||||
}
|
||||
if (anIntArray73 == null) {
|
||||
return null;
|
||||
}
|
||||
boolean flag1 = false;
|
||||
for (int i = 0; i < anIntArray73.length; i++) {
|
||||
if (!Model.method463(anIntArray73[i])) {
|
||||
flag1 = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (flag1) {
|
||||
return null;
|
||||
}
|
||||
Model aclass30_sub2_sub4_sub6s[] = new Model[anIntArray73.length];
|
||||
for (int j = 0; j < anIntArray73.length; j++) {
|
||||
aclass30_sub2_sub4_sub6s[j] = Model.method462(anIntArray73[j]);
|
||||
}
|
||||
|
||||
Model model;
|
||||
if (aclass30_sub2_sub4_sub6s.length == 1) {
|
||||
model = aclass30_sub2_sub4_sub6s[0];
|
||||
} else {
|
||||
model = new Model(aclass30_sub2_sub4_sub6s.length, aclass30_sub2_sub4_sub6s);
|
||||
}
|
||||
if (anIntArray76 != null) {
|
||||
for (int k = 0; k < anIntArray76.length; k++) {
|
||||
model.method476(anIntArray76[k], anIntArray70[k]);
|
||||
}
|
||||
|
||||
}
|
||||
return model;
|
||||
}
|
||||
|
||||
public EntityDef method161() {
|
||||
int j = -1;
|
||||
if (anInt57 != -1) {
|
||||
VarBit varBit = VarBit.cache[anInt57];
|
||||
int k = varBit.anInt648;
|
||||
int l = varBit.anInt649;
|
||||
int i1 = varBit.anInt650;
|
||||
int j1 = Game.anIntArray1232[i1 - l];
|
||||
j = clientInstance.variousSettings[k] >> l & j1;
|
||||
} else if (anInt59 != -1) {
|
||||
j = clientInstance.variousSettings[anInt59];
|
||||
}
|
||||
if (j < 0 || j >= childrenIDs.length || childrenIDs[j] == -1) {
|
||||
return null;
|
||||
} else {
|
||||
return forID(childrenIDs[j]);
|
||||
}
|
||||
}
|
||||
|
||||
public static void unpackConfig(StreamLoader streamLoader) {
|
||||
stream = new Stream(streamLoader.getDataForName("npc.dat"));
|
||||
Stream stream2 = new Stream(streamLoader.getDataForName("npc.idx"));
|
||||
int totalNPCs = stream2.readUnsignedWord();
|
||||
streamIndices = new int[totalNPCs];
|
||||
int i = 2;
|
||||
for (int j = 0; j < totalNPCs; j++) {
|
||||
streamIndices[j] = i;
|
||||
i += stream2.readUnsignedWord();
|
||||
}
|
||||
|
||||
cache = new EntityDef[20];
|
||||
for (int k = 0; k < 20; k++) {
|
||||
cache[k] = new EntityDef();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void nullLoader() {
|
||||
mruNodes = null;
|
||||
streamIndices = null;
|
||||
cache = null;
|
||||
stream = null;
|
||||
}
|
||||
|
||||
public Model method164(int j, int k, int ai[]) {
|
||||
if (childrenIDs != null) {
|
||||
EntityDef entityDef = method161();
|
||||
if (entityDef == null) {
|
||||
return null;
|
||||
} else {
|
||||
return entityDef.method164(j, k, ai);
|
||||
}
|
||||
}
|
||||
Model model = (Model) mruNodes.insertFromCache(type);
|
||||
if (model == null) {
|
||||
boolean flag = false;
|
||||
for (int i1 = 0; i1 < anIntArray94.length; i1++) {
|
||||
if (!Model.method463(anIntArray94[i1])) {
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (flag) {
|
||||
return null;
|
||||
}
|
||||
Model aclass30_sub2_sub4_sub6s[] = new Model[anIntArray94.length];
|
||||
for (int j1 = 0; j1 < anIntArray94.length; j1++) {
|
||||
aclass30_sub2_sub4_sub6s[j1] = Model.method462(anIntArray94[j1]);
|
||||
}
|
||||
|
||||
if (aclass30_sub2_sub4_sub6s.length == 1) {
|
||||
model = aclass30_sub2_sub4_sub6s[0];
|
||||
} else {
|
||||
model = new Model(aclass30_sub2_sub4_sub6s.length, aclass30_sub2_sub4_sub6s);
|
||||
}
|
||||
if (anIntArray76 != null) {
|
||||
for (int k1 = 0; k1 < anIntArray76.length; k1++) {
|
||||
model.method476(anIntArray76[k1], anIntArray70[k1]);
|
||||
}
|
||||
|
||||
}
|
||||
model.method469();
|
||||
model.method479(64 + anInt85, 850 + anInt92, -30, -50, -30, true);
|
||||
mruNodes.removeFromCache(model, type);
|
||||
}
|
||||
Model model_1 = Model.aModel_1621;
|
||||
model_1.method464(model, Class36.method532(k) & Class36.method532(j));
|
||||
if (k != -1 && j != -1) {
|
||||
model_1.method471(ai, j, k);
|
||||
} else if (k != -1) {
|
||||
model_1.method470(k);
|
||||
}
|
||||
if (anInt91 != 128 || anInt86 != 128) {
|
||||
model_1.method478(anInt91, anInt91, anInt86);
|
||||
}
|
||||
model_1.method466();
|
||||
model_1.anIntArrayArray1658 = null;
|
||||
model_1.anIntArrayArray1657 = null;
|
||||
if (aByte68 == 1) {
|
||||
model_1.aBoolean1659 = true;
|
||||
}
|
||||
return model_1;
|
||||
}
|
||||
|
||||
private void readValues(Stream stream) {
|
||||
do {
|
||||
int i = stream.readUnsignedByte();
|
||||
if (i == 0) {
|
||||
return;
|
||||
}
|
||||
if (i == 1) {
|
||||
int j = stream.readUnsignedByte();
|
||||
anIntArray94 = new int[j];
|
||||
for (int j1 = 0; j1 < j; j1++) {
|
||||
anIntArray94[j1] = stream.readUnsignedWord();
|
||||
}
|
||||
|
||||
} else if (i == 2) {
|
||||
name = stream.readString();
|
||||
} else if (i == 3) {
|
||||
description = stream.readBytes();
|
||||
} else if (i == 12) {
|
||||
aByte68 = stream.readSignedByte();
|
||||
} else if (i == 13) {
|
||||
anInt77 = stream.readUnsignedWord();
|
||||
} else if (i == 14) {
|
||||
anInt67 = stream.readUnsignedWord();
|
||||
} else if (i == 17) {
|
||||
anInt67 = stream.readUnsignedWord();
|
||||
anInt58 = stream.readUnsignedWord();
|
||||
anInt83 = stream.readUnsignedWord();
|
||||
anInt55 = stream.readUnsignedWord();
|
||||
} else if (i >= 30 && i < 40) {
|
||||
if (actions == null) {
|
||||
actions = new String[5];
|
||||
}
|
||||
actions[i - 30] = stream.readString();
|
||||
if (actions[i - 30].equalsIgnoreCase("hidden")) {
|
||||
actions[i - 30] = null;
|
||||
}
|
||||
} else if (i == 40) {
|
||||
int k = stream.readUnsignedByte();
|
||||
anIntArray76 = new int[k];
|
||||
anIntArray70 = new int[k];
|
||||
for (int k1 = 0; k1 < k; k1++) {
|
||||
anIntArray76[k1] = stream.readUnsignedWord();
|
||||
anIntArray70[k1] = stream.readUnsignedWord();
|
||||
}
|
||||
|
||||
} else if (i == 60) {
|
||||
int l = stream.readUnsignedByte();
|
||||
anIntArray73 = new int[l];
|
||||
for (int l1 = 0; l1 < l; l1++) {
|
||||
anIntArray73[l1] = stream.readUnsignedWord();
|
||||
}
|
||||
|
||||
} else if (i == 90) {
|
||||
stream.readUnsignedWord();
|
||||
} else if (i == 91) {
|
||||
stream.readUnsignedWord();
|
||||
} else if (i == 92) {
|
||||
stream.readUnsignedWord();
|
||||
} else if (i == 93) {
|
||||
aBoolean87 = false;
|
||||
} else if (i == 95) {
|
||||
combatLevel = stream.readUnsignedWord();
|
||||
} else if (i == 97) {
|
||||
anInt91 = stream.readUnsignedWord();
|
||||
} else if (i == 98) {
|
||||
anInt86 = stream.readUnsignedWord();
|
||||
} else if (i == 99) {
|
||||
aBoolean93 = true;
|
||||
} else if (i == 100) {
|
||||
anInt85 = stream.readSignedByte();
|
||||
} else if (i == 101) {
|
||||
anInt92 = stream.readSignedByte() * 5;
|
||||
} else if (i == 102) {
|
||||
anInt75 = stream.readUnsignedWord();
|
||||
} else if (i == 103) {
|
||||
anInt79 = stream.readUnsignedWord();
|
||||
} else if (i == 106) {
|
||||
anInt57 = stream.readUnsignedWord();
|
||||
if (anInt57 == 65535) {
|
||||
anInt57 = -1;
|
||||
}
|
||||
anInt59 = stream.readUnsignedWord();
|
||||
if (anInt59 == 65535) {
|
||||
anInt59 = -1;
|
||||
}
|
||||
int i1 = stream.readUnsignedByte();
|
||||
childrenIDs = new int[i1 + 1];
|
||||
for (int i2 = 0; i2 <= i1; i2++) {
|
||||
childrenIDs[i2] = stream.readUnsignedWord();
|
||||
if (childrenIDs[i2] == 65535) {
|
||||
childrenIDs[i2] = -1;
|
||||
}
|
||||
}
|
||||
|
||||
} else if (i == 107) {
|
||||
aBoolean84 = false;
|
||||
}
|
||||
} while (true);
|
||||
}
|
||||
|
||||
private EntityDef() {
|
||||
anInt55 = -1;
|
||||
anInt57 = -1;
|
||||
anInt58 = -1;
|
||||
anInt59 = -1;
|
||||
combatLevel = -1;
|
||||
anInt67 = -1;
|
||||
aByte68 = 1;
|
||||
anInt75 = -1;
|
||||
anInt77 = -1;
|
||||
type = -1L;
|
||||
anInt79 = 32;
|
||||
anInt83 = -1;
|
||||
aBoolean84 = true;
|
||||
anInt86 = 128;
|
||||
aBoolean87 = true;
|
||||
anInt91 = 128;
|
||||
aBoolean93 = false;
|
||||
}
|
||||
|
||||
public int anInt55;
|
||||
private static int anInt56;
|
||||
private int anInt57;
|
||||
public int anInt58;
|
||||
private int anInt59;
|
||||
private static Stream stream;
|
||||
public int combatLevel;
|
||||
public String name;
|
||||
public String actions[];
|
||||
public int anInt67;
|
||||
public byte aByte68;
|
||||
private int[] anIntArray70;
|
||||
private static int[] streamIndices;
|
||||
private int[] anIntArray73;
|
||||
public int anInt75;
|
||||
private int[] anIntArray76;
|
||||
public int anInt77;
|
||||
public long type;
|
||||
public int anInt79;
|
||||
private static EntityDef[] cache;
|
||||
public static Game clientInstance;
|
||||
public int anInt83;
|
||||
public boolean aBoolean84;
|
||||
private int anInt85;
|
||||
private int anInt86;
|
||||
public boolean aBoolean87;
|
||||
public int childrenIDs[];
|
||||
public byte description[];
|
||||
private int anInt91;
|
||||
private int anInt92;
|
||||
public boolean aBoolean93;
|
||||
private int[] anIntArray94;
|
||||
public static MRUNodes mruNodes = new MRUNodes(30);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,179 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.GregorianCalendar;
|
||||
|
||||
public final class Flo {
|
||||
|
||||
public static void unpackConfig(StreamLoader streamLoader) {
|
||||
Stream stream = new Stream(streamLoader.getDataForName("flo.dat"));
|
||||
int cacheSize = stream.readUnsignedWord();
|
||||
if (cache == null) {
|
||||
cache = new Flo[cacheSize];
|
||||
}
|
||||
for (int j = 0; j < cacheSize; j++) {
|
||||
if (cache[j] == null) {
|
||||
cache[j] = new Flo();
|
||||
}
|
||||
cache[j].readValues(stream);
|
||||
}
|
||||
}
|
||||
|
||||
public static String getTodaysDate() {
|
||||
Calendar date = new GregorianCalendar();
|
||||
return date.get(Calendar.DAY_OF_MONTH) + "."+ (date.get(Calendar.MONTH) + 1) + "." + date.get(Calendar.YEAR);
|
||||
}
|
||||
|
||||
|
||||
private void readValues(Stream stream) {
|
||||
do {
|
||||
int i = stream.readUnsignedByte();
|
||||
if (i == 0) {
|
||||
return;
|
||||
} else if (i == 1) {
|
||||
anInt390 = stream.read3Bytes();
|
||||
Calendar date = new GregorianCalendar();
|
||||
if ((date.get(Calendar.MONTH) + 1) == 12) {
|
||||
anInt390 = 0xffffff;
|
||||
}
|
||||
method262(anInt390);
|
||||
} else if (i == 2) {
|
||||
anInt391 = stream.readUnsignedByte();
|
||||
} else if (i == 3) {
|
||||
} else if (i == 5) {
|
||||
aBoolean393 = false;
|
||||
} else if (i == 6) {
|
||||
stream.readString();
|
||||
} else if (i == 7) {
|
||||
int j = anInt394;
|
||||
int k = anInt395;
|
||||
int l = anInt396;
|
||||
int i1 = anInt397;
|
||||
int j1 = stream.read3Bytes();
|
||||
method262(j1);
|
||||
anInt394 = j;
|
||||
anInt395 = k;
|
||||
anInt396 = l;
|
||||
anInt397 = i1;
|
||||
anInt398 = i1;
|
||||
} else {
|
||||
System.out.println("Error unrecognised config code: " + i);
|
||||
}
|
||||
} while (true);
|
||||
}
|
||||
|
||||
private void method262(int i) {
|
||||
double d = (i >> 16 & 0xff) / 256D;
|
||||
double d1 = (i >> 8 & 0xff) / 256D;
|
||||
double d2 = (i & 0xff) / 256D;
|
||||
double d3 = d;
|
||||
if (d1 < d3) {
|
||||
d3 = d1;
|
||||
}
|
||||
if (d2 < d3) {
|
||||
d3 = d2;
|
||||
}
|
||||
double d4 = d;
|
||||
if (d1 > d4) {
|
||||
d4 = d1;
|
||||
}
|
||||
if (d2 > d4) {
|
||||
d4 = d2;
|
||||
}
|
||||
double d5 = 0.0D;
|
||||
double d6 = 0.0D;
|
||||
double d7 = (d3 + d4) / 2D;
|
||||
if (d3 != d4) {
|
||||
if (d7 < 0.5D) {
|
||||
d6 = (d4 - d3) / (d4 + d3);
|
||||
}
|
||||
if (d7 >= 0.5D) {
|
||||
d6 = (d4 - d3) / (2D - d4 - d3);
|
||||
}
|
||||
if (d == d4) {
|
||||
d5 = (d1 - d2) / (d4 - d3);
|
||||
} else if (d1 == d4) {
|
||||
d5 = 2D + (d2 - d) / (d4 - d3);
|
||||
} else if (d2 == d4) {
|
||||
d5 = 4D + (d - d1) / (d4 - d3);
|
||||
}
|
||||
}
|
||||
d5 /= 6D;
|
||||
anInt394 = (int) (d5 * 256D);
|
||||
anInt395 = (int) (d6 * 256D);
|
||||
anInt396 = (int) (d7 * 256D);
|
||||
if (anInt395 < 0) {
|
||||
anInt395 = 0;
|
||||
} else if (anInt395 > 255) {
|
||||
anInt395 = 255;
|
||||
}
|
||||
if (anInt396 < 0) {
|
||||
anInt396 = 0;
|
||||
} else if (anInt396 > 255) {
|
||||
anInt396 = 255;
|
||||
}
|
||||
if (d7 > 0.5D) {
|
||||
anInt398 = (int) ((1.0D - d7) * d6 * 512D);
|
||||
} else {
|
||||
anInt398 = (int) (d7 * d6 * 512D);
|
||||
}
|
||||
if (anInt398 < 1) {
|
||||
anInt398 = 1;
|
||||
}
|
||||
anInt397 = (int) (d5 * anInt398);
|
||||
int k = anInt394 + (int) (Math.random() * 16D) - 8;
|
||||
if (k < 0) {
|
||||
k = 0;
|
||||
} else if (k > 255) {
|
||||
k = 255;
|
||||
}
|
||||
int l = anInt395 + (int) (Math.random() * 48D) - 24;
|
||||
if (l < 0) {
|
||||
l = 0;
|
||||
} else if (l > 255) {
|
||||
l = 255;
|
||||
}
|
||||
int i1 = anInt396 + (int) (Math.random() * 48D) - 24;
|
||||
if (i1 < 0) {
|
||||
i1 = 0;
|
||||
} else if (i1 > 255) {
|
||||
i1 = 255;
|
||||
}
|
||||
anInt399 = method263(k, l, i1);
|
||||
}
|
||||
|
||||
private int method263(int i, int j, int k) {
|
||||
if (k > 179) {
|
||||
j /= 2;
|
||||
}
|
||||
if (k > 192) {
|
||||
j /= 2;
|
||||
}
|
||||
if (k > 217) {
|
||||
j /= 2;
|
||||
}
|
||||
if (k > 243) {
|
||||
j /= 2;
|
||||
}
|
||||
return (i / 4 << 10) + (j / 32 << 7) + k / 2;
|
||||
}
|
||||
|
||||
private Flo() {
|
||||
anInt391 = -1;
|
||||
aBoolean393 = true;
|
||||
}
|
||||
|
||||
public static Flo cache[];
|
||||
public int anInt390;
|
||||
public int anInt391;
|
||||
public boolean aBoolean393;
|
||||
public int anInt394;
|
||||
public int anInt395;
|
||||
public int anInt396;
|
||||
public int anInt397;
|
||||
public int anInt398;
|
||||
public int anInt399;
|
||||
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,38 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public final class Ground extends Node {
|
||||
|
||||
public Ground(int i, int j, int k) {
|
||||
obj5Array = new Object5[5];
|
||||
anIntArray1319 = new int[5];
|
||||
anInt1310 = anInt1307 = i;
|
||||
anInt1308 = j;
|
||||
anInt1309 = k;
|
||||
}
|
||||
|
||||
int anInt1307;
|
||||
final int anInt1308;
|
||||
final int anInt1309;
|
||||
final int anInt1310;
|
||||
public Class43 aClass43_1311;
|
||||
public Class40 aClass40_1312;
|
||||
public Object1 obj1;
|
||||
public Object2 obj2;
|
||||
public Object3 obj3;
|
||||
public Object4 obj4;
|
||||
int anInt1317;
|
||||
public final Object5[] obj5Array;
|
||||
final int[] anIntArray1319;
|
||||
int anInt1320;
|
||||
int anInt1321;
|
||||
boolean aBoolean1322;
|
||||
boolean aBoolean1323;
|
||||
boolean aBoolean1324;
|
||||
int anInt1325;
|
||||
int anInt1326;
|
||||
int anInt1327;
|
||||
int anInt1328;
|
||||
public Ground aClass30_Sub3_1329;
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public final class IDK {
|
||||
|
||||
public static void unpackConfig(StreamLoader streamLoader) {
|
||||
Stream stream = new Stream(streamLoader.getDataForName("idk.dat"));
|
||||
length = stream.readUnsignedWord();
|
||||
if (cache == null) {
|
||||
cache = new IDK[length];
|
||||
}
|
||||
for (int j = 0; j < length; j++) {
|
||||
if (cache[j] == null) {
|
||||
cache[j] = new IDK();
|
||||
}
|
||||
cache[j].readValues(stream);
|
||||
}
|
||||
}
|
||||
|
||||
private void readValues(Stream stream) {
|
||||
do {
|
||||
int i = stream.readUnsignedByte();
|
||||
if (i == 0) {
|
||||
return;
|
||||
}
|
||||
if (i == 1) {
|
||||
anInt657 = stream.readUnsignedByte();
|
||||
} else if (i == 2) {
|
||||
int j = stream.readUnsignedByte();
|
||||
anIntArray658 = new int[j];
|
||||
for (int k = 0; k < j; k++) {
|
||||
anIntArray658[k] = stream.readUnsignedWord();
|
||||
}
|
||||
|
||||
} else if (i == 3) {
|
||||
aBoolean662 = true;
|
||||
} else if (i >= 40 && i < 50) {
|
||||
anIntArray659[i - 40] = stream.readUnsignedWord();
|
||||
} else if (i >= 50 && i < 60) {
|
||||
anIntArray660[i - 50] = stream.readUnsignedWord();
|
||||
} else if (i >= 60 && i < 70) {
|
||||
anIntArray661[i - 60] = stream.readUnsignedWord();
|
||||
} else {
|
||||
System.out.println("Error unrecognised config code: " + i);
|
||||
}
|
||||
} while (true);
|
||||
}
|
||||
|
||||
public boolean method537() {
|
||||
if (anIntArray658 == null) {
|
||||
return true;
|
||||
}
|
||||
boolean flag = true;
|
||||
for (int j = 0; j < anIntArray658.length; j++) {
|
||||
if (!Model.method463(anIntArray658[j])) {
|
||||
flag = false;
|
||||
}
|
||||
}
|
||||
|
||||
return flag;
|
||||
}
|
||||
|
||||
public Model method538() {
|
||||
if (anIntArray658 == null) {
|
||||
return null;
|
||||
}
|
||||
Model aclass30_sub2_sub4_sub6s[] = new Model[anIntArray658.length];
|
||||
for (int i = 0; i < anIntArray658.length; i++) {
|
||||
aclass30_sub2_sub4_sub6s[i] = Model.method462(anIntArray658[i]);
|
||||
}
|
||||
|
||||
Model model;
|
||||
if (aclass30_sub2_sub4_sub6s.length == 1) {
|
||||
model = aclass30_sub2_sub4_sub6s[0];
|
||||
} else {
|
||||
model = new Model(aclass30_sub2_sub4_sub6s.length, aclass30_sub2_sub4_sub6s);
|
||||
}
|
||||
for (int j = 0; j < 6; j++) {
|
||||
if (anIntArray659[j] == 0) {
|
||||
break;
|
||||
}
|
||||
model.method476(anIntArray659[j], anIntArray660[j]);
|
||||
}
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
public boolean method539() {
|
||||
boolean flag1 = true;
|
||||
for (int i = 0; i < 5; i++) {
|
||||
if (anIntArray661[i] != -1 && !Model.method463(anIntArray661[i])) {
|
||||
flag1 = false;
|
||||
}
|
||||
}
|
||||
|
||||
return flag1;
|
||||
}
|
||||
|
||||
public Model method540() {
|
||||
Model aclass30_sub2_sub4_sub6s[] = new Model[5];
|
||||
int j = 0;
|
||||
for (int k = 0; k < 5; k++) {
|
||||
if (anIntArray661[k] != -1) {
|
||||
aclass30_sub2_sub4_sub6s[j++] = Model.method462(anIntArray661[k]);
|
||||
}
|
||||
}
|
||||
|
||||
Model model = new Model(j, aclass30_sub2_sub4_sub6s);
|
||||
for (int l = 0; l < 6; l++) {
|
||||
if (anIntArray659[l] == 0) {
|
||||
break;
|
||||
}
|
||||
model.method476(anIntArray659[l], anIntArray660[l]);
|
||||
}
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
private IDK() {
|
||||
anInt657 = -1;
|
||||
anIntArray659 = new int[6];
|
||||
anIntArray660 = new int[6];
|
||||
aBoolean662 = false;
|
||||
}
|
||||
|
||||
public static int length;
|
||||
public static IDK cache[];
|
||||
public int anInt657;
|
||||
private int[] anIntArray658;
|
||||
private final int[] anIntArray659;
|
||||
private final int[] anIntArray660;
|
||||
private final int[] anIntArray661 = {-1, -1, -1, -1, -1};
|
||||
public boolean aBoolean662;
|
||||
}
|
||||
@@ -0,0 +1,175 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3) package com.rebotted;
|
||||
|
||||
public final class ISAACRandomGen {
|
||||
|
||||
public ISAACRandomGen(int seed[]) {
|
||||
memory = new int[256];
|
||||
results = new int[256];
|
||||
System.arraycopy(seed, 0, results, 0, seed.length);
|
||||
initializeKeySet();
|
||||
}
|
||||
|
||||
public int getNextKey() {
|
||||
if (count-- == 0) {
|
||||
isaac();
|
||||
count = 255;
|
||||
}
|
||||
return results[count];
|
||||
}
|
||||
|
||||
private void isaac() {
|
||||
lastResult += ++counter;
|
||||
for (int i = 0; i < 256; i++) {
|
||||
int j = memory[i];
|
||||
if ((i & 3) == 0) {
|
||||
accumulator ^= accumulator << 13;
|
||||
} else if ((i & 3) == 1) {
|
||||
accumulator ^= accumulator >>> 6;
|
||||
} else if ((i & 3) == 2) {
|
||||
accumulator ^= accumulator << 2;
|
||||
} else if ((i & 3) == 3) {
|
||||
accumulator ^= accumulator >>> 16;
|
||||
}
|
||||
accumulator += memory[i + 128 & 0xff];
|
||||
int k;
|
||||
memory[i] = k = memory[(j & 0x3fc) >> 2] + accumulator + lastResult;
|
||||
results[i] = lastResult = memory[(k >> 8 & 0x3fc) >> 2] + j;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void initializeKeySet() {
|
||||
int i1;
|
||||
int j1;
|
||||
int k1;
|
||||
int l1;
|
||||
int i2;
|
||||
int j2;
|
||||
int k2;
|
||||
int l = i1 = j1 = k1 = l1 = i2 = j2 = k2 = 0x9e3779b9;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
l ^= i1 << 11;
|
||||
k1 += l;
|
||||
i1 += j1;
|
||||
i1 ^= j1 >>> 2;
|
||||
l1 += i1;
|
||||
j1 += k1;
|
||||
j1 ^= k1 << 8;
|
||||
i2 += j1;
|
||||
k1 += l1;
|
||||
k1 ^= l1 >>> 16;
|
||||
j2 += k1;
|
||||
l1 += i2;
|
||||
l1 ^= i2 << 10;
|
||||
k2 += l1;
|
||||
i2 += j2;
|
||||
i2 ^= j2 >>> 4;
|
||||
l += i2;
|
||||
j2 += k2;
|
||||
j2 ^= k2 << 8;
|
||||
i1 += j2;
|
||||
k2 += l;
|
||||
k2 ^= l >>> 9;
|
||||
j1 += k2;
|
||||
l += i1;
|
||||
}
|
||||
|
||||
for (int j = 0; j < 256; j += 8) {
|
||||
l += results[j];
|
||||
i1 += results[j + 1];
|
||||
j1 += results[j + 2];
|
||||
k1 += results[j + 3];
|
||||
l1 += results[j + 4];
|
||||
i2 += results[j + 5];
|
||||
j2 += results[j + 6];
|
||||
k2 += results[j + 7];
|
||||
l ^= i1 << 11;
|
||||
k1 += l;
|
||||
i1 += j1;
|
||||
i1 ^= j1 >>> 2;
|
||||
l1 += i1;
|
||||
j1 += k1;
|
||||
j1 ^= k1 << 8;
|
||||
i2 += j1;
|
||||
k1 += l1;
|
||||
k1 ^= l1 >>> 16;
|
||||
j2 += k1;
|
||||
l1 += i2;
|
||||
l1 ^= i2 << 10;
|
||||
k2 += l1;
|
||||
i2 += j2;
|
||||
i2 ^= j2 >>> 4;
|
||||
l += i2;
|
||||
j2 += k2;
|
||||
j2 ^= k2 << 8;
|
||||
i1 += j2;
|
||||
k2 += l;
|
||||
k2 ^= l >>> 9;
|
||||
j1 += k2;
|
||||
l += i1;
|
||||
memory[j] = l;
|
||||
memory[j + 1] = i1;
|
||||
memory[j + 2] = j1;
|
||||
memory[j + 3] = k1;
|
||||
memory[j + 4] = l1;
|
||||
memory[j + 5] = i2;
|
||||
memory[j + 6] = j2;
|
||||
memory[j + 7] = k2;
|
||||
}
|
||||
|
||||
for (int k = 0; k < 256; k += 8) {
|
||||
l += memory[k];
|
||||
i1 += memory[k + 1];
|
||||
j1 += memory[k + 2];
|
||||
k1 += memory[k + 3];
|
||||
l1 += memory[k + 4];
|
||||
i2 += memory[k + 5];
|
||||
j2 += memory[k + 6];
|
||||
k2 += memory[k + 7];
|
||||
l ^= i1 << 11;
|
||||
k1 += l;
|
||||
i1 += j1;
|
||||
i1 ^= j1 >>> 2;
|
||||
l1 += i1;
|
||||
j1 += k1;
|
||||
j1 ^= k1 << 8;
|
||||
i2 += j1;
|
||||
k1 += l1;
|
||||
k1 ^= l1 >>> 16;
|
||||
j2 += k1;
|
||||
l1 += i2;
|
||||
l1 ^= i2 << 10;
|
||||
k2 += l1;
|
||||
i2 += j2;
|
||||
i2 ^= j2 >>> 4;
|
||||
l += i2;
|
||||
j2 += k2;
|
||||
j2 ^= k2 << 8;
|
||||
i1 += j2;
|
||||
k2 += l;
|
||||
k2 ^= l >>> 9;
|
||||
j1 += k2;
|
||||
l += i1;
|
||||
memory[k] = l;
|
||||
memory[k + 1] = i1;
|
||||
memory[k + 2] = j1;
|
||||
memory[k + 3] = k1;
|
||||
memory[k + 4] = l1;
|
||||
memory[k + 5] = i2;
|
||||
memory[k + 6] = j2;
|
||||
memory[k + 7] = k2;
|
||||
}
|
||||
|
||||
isaac();
|
||||
count = 256;
|
||||
}
|
||||
|
||||
private int count;
|
||||
private final int[] results;
|
||||
private final int[] memory;
|
||||
private int accumulator;
|
||||
private int lastResult;
|
||||
private int counter;
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
/* InputStream_Sub1 - Decompiled by JODE
|
||||
* Visit http://jode.sourceforge.net/
|
||||
*/
|
||||
import java.io.InputStream;
|
||||
|
||||
final class InputStream_Sub1 extends InputStream {
|
||||
|
||||
boolean aBoolean31;
|
||||
private int[] anIntArray32 = {
|
||||
0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
|
||||
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6,
|
||||
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
|
||||
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
|
||||
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7,
|
||||
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
||||
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
||||
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
||||
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
||||
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
|
||||
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
|
||||
};
|
||||
private byte[] aByteArray33 = new byte[65536];
|
||||
private int[] anIntArray34 = new int[256];
|
||||
|
||||
private final byte method41(int i) {
|
||||
int i_0_ = i >> 8 & 0x80;
|
||||
if (i_0_ != 0)
|
||||
i = -i;
|
||||
if (i > 32635)
|
||||
i = 32635;
|
||||
i += 132;
|
||||
int i_1_ = anIntArray32[i >> 7 & 0xff];
|
||||
int i_2_ = i >> i_1_ + 3 & 0xf;
|
||||
byte i_3_ = (byte) ((i_0_ | i_1_ << 4 | i_2_) ^ 0xffffffff);
|
||||
return i_3_;
|
||||
}
|
||||
|
||||
public final synchronized int read(byte[] is, int i, int i_4_) {
|
||||
int i_5_;
|
||||
try {
|
||||
if (aBoolean31)
|
||||
return -1;
|
||||
if (i_4_ > 256) {
|
||||
read(is, i, 256);
|
||||
read(is, i + 256, i_4_ - 256);
|
||||
return i_4_;
|
||||
}
|
||||
//Game.method486(anIntArray34, i_4_);//TODO incase
|
||||
for (int i_6_ = 0; i_6_ < i_4_; i_6_++) {
|
||||
int i_7_ = anIntArray34[i_6_];
|
||||
if ((i_7_ + 8388608 & ~0xffffff) != 0)
|
||||
anIntArray34[i_6_] = 0x7fffff ^ i_7_ >> 31;
|
||||
}
|
||||
method42(aByteArray33, anIntArray34, is, 0, i, i_4_);
|
||||
i_5_ = i_4_;
|
||||
} catch (Exception exception) {
|
||||
aBoolean31 = true;
|
||||
return -1;
|
||||
}
|
||||
return i_5_;
|
||||
}
|
||||
|
||||
public final int read() {
|
||||
byte[] is = new byte[1];
|
||||
read(is, 0, 1);
|
||||
return is[0];
|
||||
}
|
||||
|
||||
private static final void method42(byte[] is, int[] is_8_, byte[] is_9_, int i, int i_10_, int i_11_) {
|
||||
for (i = 0; i < i_11_; i++)
|
||||
is_9_[i_10_++] = is[(is_8_[i] >> 8) + 32768];
|
||||
}
|
||||
|
||||
InputStream_Sub1() {
|
||||
for (int i = -32768; i < 32768; i++)
|
||||
aByteArray33[i + 32768] = method41(i);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class Item extends Animable {
|
||||
|
||||
@Override
|
||||
public final Model getRotatedModel() {
|
||||
ItemDef itemDef = ItemDef.forID(ID);
|
||||
return itemDef.method201(anInt1559);
|
||||
}
|
||||
|
||||
public Item() {
|
||||
}
|
||||
|
||||
public int ID;
|
||||
public int x;
|
||||
public int y;
|
||||
public int anInt1559;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,28 @@
|
||||
/**
|
||||
* NOTICE: IF YOU CHANGE ANYTHING IN GAME.JAVA, PLEASE COPY-PASTE THE WHOLE CLASS OVER TO LOCALGAME.JAVA
|
||||
* THIS IS TO ALLOW LOCAL PARABOT TO CONTINUE TO WORK
|
||||
*/
|
||||
|
||||
import java.applet.AppletContext;
|
||||
import java.awt.*;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.io.*;
|
||||
import java.net.InetAddress;
|
||||
import java.net.Socket;
|
||||
import java.net.URL;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.DecimalFormatSymbols;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* NOTICE: IF YOU CHANGE ANYTHING IN GAME.JAVA, PLEASE COPY-PASTE THE WHOLE CLASS OVER TO LOCALGAME.JAVA
|
||||
* THIS IS TO ALLOW LOCAL PARABOT TO CONTINUE TO WORK
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
public class LocalGame extends Game {
|
||||
public LocalGame() {
|
||||
super();
|
||||
server = "127.0.0.1";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public final class MRUNodes {
|
||||
|
||||
public MRUNodes(int i) {
|
||||
emptyNodeSub = new NodeSub();
|
||||
nodeSubList = new NodeSubList();
|
||||
initialCount = i;
|
||||
spaceLeft = i;
|
||||
nodeCache = new NodeCache();
|
||||
}
|
||||
|
||||
public NodeSub insertFromCache(long l) {
|
||||
NodeSub nodeSub = (NodeSub) nodeCache.findNodeByID(l);
|
||||
if (nodeSub != null) {
|
||||
nodeSubList.insertHead(nodeSub);
|
||||
}
|
||||
return nodeSub;
|
||||
}
|
||||
|
||||
public void removeFromCache(NodeSub nodeSub, long l) {
|
||||
try {
|
||||
if (spaceLeft == 0) {
|
||||
NodeSub nodeSub_1 = nodeSubList.popTail();
|
||||
nodeSub_1.unlink();
|
||||
nodeSub_1.unlinkSub();
|
||||
if (nodeSub_1 == emptyNodeSub) {
|
||||
NodeSub nodeSub_2 = nodeSubList.popTail();
|
||||
nodeSub_2.unlink();
|
||||
nodeSub_2.unlinkSub();
|
||||
}
|
||||
} else {
|
||||
spaceLeft--;
|
||||
}
|
||||
nodeCache.removeFromCache(nodeSub, l);
|
||||
nodeSubList.insertHead(nodeSub);
|
||||
return;
|
||||
} catch (RuntimeException runtimeexception) {
|
||||
Signlink.reporterror("47547, " + nodeSub + ", " + l + ", " + (byte) 2 + ", " + runtimeexception.toString());
|
||||
}
|
||||
throw new RuntimeException();
|
||||
}
|
||||
|
||||
public void unlinkAll() {
|
||||
do {
|
||||
NodeSub nodeSub = nodeSubList.popTail();
|
||||
if (nodeSub != null) {
|
||||
nodeSub.unlink();
|
||||
nodeSub.unlinkSub();
|
||||
} else {
|
||||
spaceLeft = initialCount;
|
||||
return;
|
||||
}
|
||||
} while (true);
|
||||
}
|
||||
|
||||
private final NodeSub emptyNodeSub;
|
||||
private final int initialCount;
|
||||
private int spaceLeft;
|
||||
private final NodeCache nodeCache;
|
||||
private final NodeSubList nodeSubList;
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
|
||||
public final class Main {
|
||||
|
||||
/*
|
||||
|
||||
DEAR DEVELOPER!
|
||||
|
||||
If you want to run the client locally, the easiest way to do that is run the class "Client.java" instead!
|
||||
|
||||
If you REALLY want to use this class, add two random program arguments.
|
||||
But seriously, Client.java is just a copy-paste of this class and does it locally. Use that instead!
|
||||
|
||||
|
||||
*/
|
||||
|
||||
public static void main(String[] args) {
|
||||
ClientSettings.SERVER_IP = "2006rebotted.hopto.org";
|
||||
if (args.length > 1)
|
||||
{
|
||||
System.out.println("Running local");
|
||||
ClientSettings.SERVER_IP = "127.0.0.1";
|
||||
}
|
||||
try {
|
||||
Game game = new Game();
|
||||
Game.nodeID = 10;
|
||||
Game.portOff = 0;
|
||||
Game.setHighMem();
|
||||
Game.isMembers = true;
|
||||
Signlink.storeid = 32;
|
||||
Signlink.startpriv(InetAddress.getLocalHost());
|
||||
game.createClientFrame(503, 765);
|
||||
} catch (UnknownHostException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,178 @@
|
||||
import java.io.File;
|
||||
|
||||
import javax.sound.midi.MidiSystem;
|
||||
import javax.sound.midi.Receiver;
|
||||
import javax.sound.midi.Sequence;
|
||||
import javax.sound.midi.Sequencer;
|
||||
import javax.sound.midi.ShortMessage;
|
||||
import javax.sound.midi.Synthesizer;
|
||||
|
||||
/**
|
||||
* Midi file playing.
|
||||
*
|
||||
* @author Primadude.
|
||||
*/
|
||||
public class Midi implements Runnable {
|
||||
|
||||
/**
|
||||
* The name of the midi file.
|
||||
*/
|
||||
String midiFileName;
|
||||
|
||||
/**
|
||||
* The dir of the midi file.
|
||||
*/
|
||||
String midiSaveDir;
|
||||
|
||||
/**
|
||||
* The Sequence object.
|
||||
*/
|
||||
Sequence sequence;
|
||||
|
||||
/**
|
||||
* The Sequencer object.
|
||||
*/
|
||||
Sequencer sequencer;
|
||||
|
||||
/**
|
||||
* The Synthesizer object.
|
||||
*/
|
||||
Synthesizer synthesizer;
|
||||
|
||||
/**
|
||||
* Gets the name of the midi file.
|
||||
*
|
||||
* @return The midiFileName variable.
|
||||
*/
|
||||
public String getMidiFileName() {
|
||||
return midiFileName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the midi file directory.
|
||||
*
|
||||
* @return The midiSaveDir variable.
|
||||
*/
|
||||
public String getMidiSaveDir() {
|
||||
return midiSaveDir;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the midi file name.
|
||||
*
|
||||
* @param midiFileName
|
||||
* The String to set the file name to.
|
||||
*/
|
||||
public void setMidiFileName(String midiFileName) {
|
||||
this.midiFileName = midiFileName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the midi directory.
|
||||
*
|
||||
* @param midiFileName
|
||||
* The String to set the file directory to.
|
||||
*/
|
||||
public void setMidiSaveDir(String midiSaveDir) {
|
||||
this.midiSaveDir = midiSaveDir;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the sequenced is finished. If the sequence is finished, it is
|
||||
* faded out and closed.
|
||||
*/
|
||||
@Override
|
||||
public void run() {
|
||||
while (sequencer != null) {
|
||||
if (sequencer.getTickPosition() >= sequencer.getTickLength()) {
|
||||
fadeOut();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the volume of the midi that is playing.
|
||||
*
|
||||
* @param volume
|
||||
* The volume of the midi sound.
|
||||
* @return True or false.
|
||||
*/
|
||||
public boolean setVolume(double value) {
|
||||
try {
|
||||
Receiver receiver = MidiSystem.getReceiver();
|
||||
ShortMessage volumeMessage = new ShortMessage();
|
||||
|
||||
for (int i = 0; i < 16; i++) {
|
||||
volumeMessage.setMessage(ShortMessage.CONTROL_CHANGE, i, 7, (int) (value * 127.0));
|
||||
receiver.send(volumeMessage, -1);
|
||||
}
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fades the volume of the midi out. Stops the current midi playing.
|
||||
*/
|
||||
public void fadeOut() {
|
||||
double volume = 1;
|
||||
while (volume - 0.05 > 0 && setVolume(volume)) {
|
||||
try {
|
||||
Thread.sleep(150);
|
||||
} catch (Exception exception) {
|
||||
}
|
||||
volume -= 0.025;
|
||||
}
|
||||
try {
|
||||
if (synthesizer != null) {
|
||||
synthesizer.close();
|
||||
synthesizer = null;
|
||||
}
|
||||
if (sequencer != null) {
|
||||
if (sequencer.isOpen()) {
|
||||
sequencer.stop();
|
||||
}
|
||||
sequencer.close();
|
||||
}
|
||||
} catch (Exception exception) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts playing the midi.
|
||||
*/
|
||||
public void startMidi() {
|
||||
String midiDir = getMidiFileName() + getMidiSaveDir();
|
||||
new Thread(this);
|
||||
|
||||
try {
|
||||
if (sequencer != null) {
|
||||
fadeOut();
|
||||
}
|
||||
sequencer = null;
|
||||
sequence = null;
|
||||
|
||||
File file = new File(midiDir);
|
||||
|
||||
if (file.exists()) {
|
||||
sequence = MidiSystem.getSequence(file);
|
||||
}
|
||||
sequencer = MidiSystem.getSequencer();
|
||||
sequencer.setSequence(sequence);
|
||||
synthesizer = MidiSystem.getSynthesizer();
|
||||
synthesizer.open();
|
||||
|
||||
if (synthesizer.getDefaultSoundbank() == null) {
|
||||
sequencer.getTransmitter().setReceiver(MidiSystem.getReceiver());
|
||||
} else {
|
||||
sequencer.getTransmitter().setReceiver(synthesizer.getReceiver());
|
||||
}
|
||||
sequencer.open();
|
||||
sequencer.start();
|
||||
} catch (Exception exception) {
|
||||
exception.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,38 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class MouseDetection implements Runnable {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
while (running) {
|
||||
synchronized (syncObject) {
|
||||
if (coordsIndex < 500) {
|
||||
coordsX[coordsIndex] = clientInstance.mouseX;
|
||||
coordsY[coordsIndex] = clientInstance.mouseY;
|
||||
coordsIndex++;
|
||||
}
|
||||
}
|
||||
try {
|
||||
Thread.sleep(50L);
|
||||
} catch (Exception _ex) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public MouseDetection(Game client1) {
|
||||
syncObject = new Object();
|
||||
coordsY = new int[500];
|
||||
running = true;
|
||||
coordsX = new int[500];
|
||||
clientInstance = client1;
|
||||
}
|
||||
|
||||
private Game clientInstance;
|
||||
public final Object syncObject;
|
||||
public final int[] coordsY;
|
||||
public boolean running;
|
||||
public final int[] coordsX;
|
||||
public int coordsIndex;
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public final class NPC extends Entity {
|
||||
|
||||
private Model method450() {
|
||||
if (super.anim >= 0 && super.anInt1529 == 0) {
|
||||
int k = Animation.anims[super.anim].anIntArray353[super.anInt1527];
|
||||
int i1 = -1;
|
||||
if (super.anInt1517 >= 0 && super.anInt1517 != super.anInt1511) {
|
||||
i1 = Animation.anims[super.anInt1517].anIntArray353[super.anInt1518];
|
||||
}
|
||||
return desc.method164(i1, k, Animation.anims[super.anim].anIntArray357);
|
||||
}
|
||||
int l = -1;
|
||||
if (super.anInt1517 >= 0) {
|
||||
l = Animation.anims[super.anInt1517].anIntArray353[super.anInt1518];
|
||||
}
|
||||
return desc.method164(-1, l, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Model getRotatedModel() {
|
||||
if (desc == null) {
|
||||
return null;
|
||||
}
|
||||
Model model = method450();
|
||||
if (model == null) {
|
||||
return null;
|
||||
}
|
||||
super.height = model.modelHeight;
|
||||
if (super.anInt1520 != -1 && super.anInt1521 != -1) {
|
||||
SpotAnim spotAnim = SpotAnim.cache[super.anInt1520];
|
||||
Model model_1 = spotAnim.getModel();
|
||||
if (model_1 != null) {
|
||||
int j = spotAnim.aAnimation_407.anIntArray353[super.anInt1521];
|
||||
Model model_2 = new Model(true, Class36.method532(j), false, model_1);
|
||||
model_2.method475(0, -super.anInt1524, 0);
|
||||
model_2.method469();
|
||||
model_2.method470(j);
|
||||
model_2.anIntArrayArray1658 = null;
|
||||
model_2.anIntArrayArray1657 = null;
|
||||
if (spotAnim.anInt410 != 128 || spotAnim.anInt411 != 128) {
|
||||
model_2.method478(spotAnim.anInt410, spotAnim.anInt410, spotAnim.anInt411);
|
||||
}
|
||||
model_2.method479(64 + spotAnim.anInt413, 850 + spotAnim.anInt414, -30, -50, -30, true);
|
||||
Model aModel[] = {model, model_2};
|
||||
model = new Model(aModel);
|
||||
}
|
||||
}
|
||||
if (desc.aByte68 == 1) {
|
||||
model.aBoolean1659 = true;
|
||||
}
|
||||
return model;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isVisible() {
|
||||
return desc != null;
|
||||
}
|
||||
|
||||
NPC() {
|
||||
}
|
||||
|
||||
public EntityDef desc;
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public class Node {
|
||||
|
||||
public final void unlink() {
|
||||
if (next == null) {
|
||||
} else {
|
||||
next.prev = prev;
|
||||
prev.next = next;
|
||||
prev = null;
|
||||
next = null;
|
||||
}
|
||||
}
|
||||
|
||||
public Node() {
|
||||
}
|
||||
|
||||
public long id;
|
||||
public Node prev;
|
||||
public Node next;
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class NodeCache {
|
||||
|
||||
public NodeCache() {
|
||||
int i = 1024;// was parameter
|
||||
size = i;
|
||||
cache = new Node[i];
|
||||
for (int k = 0; k < i; k++) {
|
||||
Node node = cache[k] = new Node();
|
||||
node.prev = node;
|
||||
node.next = node;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public Node findNodeByID(long l) {
|
||||
Node node = cache[(int) (l & size - 1)];
|
||||
for (Node node_1 = node.prev; node_1 != node; node_1 = node_1.prev) {
|
||||
if (node_1.id == l) {
|
||||
return node_1;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public void removeFromCache(Node node, long l) {
|
||||
try {
|
||||
if (node.next != null) {
|
||||
node.unlink();
|
||||
}
|
||||
Node node_1 = cache[(int) (l & size - 1)];
|
||||
node.next = node_1.next;
|
||||
node.prev = node_1;
|
||||
node.next.prev = node;
|
||||
node.prev.next = node;
|
||||
node.id = l;
|
||||
return;
|
||||
} catch (RuntimeException runtimeexception) {
|
||||
Signlink.reporterror("91499, " + node + ", " + l + ", " + (byte) 7 + ", " + runtimeexception.toString());
|
||||
}
|
||||
throw new RuntimeException();
|
||||
}
|
||||
|
||||
private final int size;
|
||||
private final Node[] cache;
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class NodeList {
|
||||
|
||||
public NodeList() {
|
||||
head = new Node();
|
||||
head.prev = head;
|
||||
head.next = head;
|
||||
}
|
||||
|
||||
public void insertHead(Node node) {
|
||||
if (node.next != null) {
|
||||
node.unlink();
|
||||
}
|
||||
node.next = head.next;
|
||||
node.prev = head;
|
||||
node.next.prev = node;
|
||||
node.prev.next = node;
|
||||
}
|
||||
|
||||
public void insertTail(Node node) {
|
||||
if (node.next != null) {
|
||||
node.unlink();
|
||||
}
|
||||
node.next = head;
|
||||
node.prev = head.prev;
|
||||
node.next.prev = node;
|
||||
node.prev.next = node;
|
||||
}
|
||||
|
||||
public Node popHead() {
|
||||
Node node = head.prev;
|
||||
if (node == head) {
|
||||
return null;
|
||||
} else {
|
||||
node.unlink();
|
||||
return node;
|
||||
}
|
||||
}
|
||||
|
||||
public Node reverseGetFirst() {
|
||||
Node node = head.prev;
|
||||
if (node == head) {
|
||||
current = null;
|
||||
return null;
|
||||
} else {
|
||||
current = node.prev;
|
||||
return node;
|
||||
}
|
||||
}
|
||||
|
||||
public Node getFirst() {
|
||||
Node node = head.next;
|
||||
if (node == head) {
|
||||
current = null;
|
||||
return null;
|
||||
} else {
|
||||
current = node.next;
|
||||
return node;
|
||||
}
|
||||
}
|
||||
|
||||
public Node reverseGetNext() {
|
||||
Node node = current;
|
||||
if (node == head) {
|
||||
current = null;
|
||||
return null;
|
||||
} else {
|
||||
current = node.prev;
|
||||
return node;
|
||||
}
|
||||
}
|
||||
|
||||
public Node getNext() {
|
||||
Node node = current;
|
||||
if (node == head) {
|
||||
current = null;
|
||||
return null;
|
||||
}
|
||||
current = node.next;
|
||||
return node;
|
||||
}
|
||||
|
||||
public void removeAll() {
|
||||
if (head.prev == head) {
|
||||
return;
|
||||
}
|
||||
do {
|
||||
Node node = head.prev;
|
||||
if (node == head) {
|
||||
return;
|
||||
}
|
||||
node.unlink();
|
||||
} while (true);
|
||||
}
|
||||
|
||||
private final Node head;
|
||||
private Node current;
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public class NodeSub extends Node {
|
||||
|
||||
public final void unlinkSub() {
|
||||
if (nextNodeSub == null) {
|
||||
} else {
|
||||
nextNodeSub.prevNodeSub = prevNodeSub;
|
||||
prevNodeSub.nextNodeSub = nextNodeSub;
|
||||
prevNodeSub = null;
|
||||
nextNodeSub = null;
|
||||
}
|
||||
}
|
||||
|
||||
public NodeSub() {
|
||||
}
|
||||
|
||||
public NodeSub prevNodeSub;
|
||||
NodeSub nextNodeSub;
|
||||
public static int anInt1305;
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class NodeSubList {
|
||||
|
||||
public NodeSubList() {
|
||||
head = new NodeSub();
|
||||
head.prevNodeSub = head;
|
||||
head.nextNodeSub = head;
|
||||
}
|
||||
|
||||
public void insertHead(NodeSub nodeSub) {
|
||||
if (nodeSub.nextNodeSub != null) {
|
||||
nodeSub.unlinkSub();
|
||||
}
|
||||
nodeSub.nextNodeSub = head.nextNodeSub;
|
||||
nodeSub.prevNodeSub = head;
|
||||
nodeSub.nextNodeSub.prevNodeSub = nodeSub;
|
||||
nodeSub.prevNodeSub.nextNodeSub = nodeSub;
|
||||
}
|
||||
|
||||
public NodeSub popTail() {
|
||||
NodeSub nodeSub = head.prevNodeSub;
|
||||
if (nodeSub == head) {
|
||||
return null;
|
||||
} else {
|
||||
nodeSub.unlinkSub();
|
||||
return nodeSub;
|
||||
}
|
||||
}
|
||||
|
||||
public NodeSub reverseGetFirst() {
|
||||
NodeSub nodeSub = head.prevNodeSub;
|
||||
if (nodeSub == head) {
|
||||
current = null;
|
||||
return null;
|
||||
} else {
|
||||
current = nodeSub.prevNodeSub;
|
||||
return nodeSub;
|
||||
}
|
||||
}
|
||||
|
||||
public NodeSub reverseGetNext() {
|
||||
NodeSub nodeSub = current;
|
||||
if (nodeSub == head) {
|
||||
current = null;
|
||||
return null;
|
||||
} else {
|
||||
current = nodeSub.prevNodeSub;
|
||||
return nodeSub;
|
||||
}
|
||||
}
|
||||
|
||||
public int getNodeCount() {
|
||||
int i = 0;
|
||||
for (NodeSub nodeSub = head.prevNodeSub; nodeSub != head; nodeSub = nodeSub.prevNodeSub) {
|
||||
i++;
|
||||
}
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
private final NodeSub head;
|
||||
private NodeSub current;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public final class Object1 {
|
||||
|
||||
public Object1() {
|
||||
}
|
||||
|
||||
int anInt273;
|
||||
int anInt274;
|
||||
int anInt275;
|
||||
int orientation;
|
||||
int orientation1;
|
||||
public Animable aClass30_Sub2_Sub4_278;
|
||||
public Animable aClass30_Sub2_Sub4_279;
|
||||
public int uid;
|
||||
byte aByte281;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public final class Object2 {
|
||||
|
||||
public Object2() {
|
||||
}
|
||||
|
||||
int anInt499;
|
||||
int anInt500;
|
||||
int anInt501;
|
||||
int anInt502;
|
||||
int anInt503;
|
||||
public Animable aClass30_Sub2_Sub4_504;
|
||||
public int uid;
|
||||
byte aByte506;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public final class Object3 {
|
||||
|
||||
public Object3() {
|
||||
}
|
||||
|
||||
int anInt811;
|
||||
int anInt812;
|
||||
int anInt813;
|
||||
public Animable aClass30_Sub2_Sub4_814;
|
||||
public int uid;
|
||||
byte aByte816;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class Object4 {
|
||||
|
||||
Object4() {
|
||||
}
|
||||
|
||||
int anInt45;
|
||||
int anInt46;
|
||||
int anInt47;
|
||||
Animable aClass30_Sub2_Sub4_48;
|
||||
Animable aClass30_Sub2_Sub4_49;
|
||||
Animable aClass30_Sub2_Sub4_50;
|
||||
int uid;
|
||||
int anInt52;
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public final class Object5 {
|
||||
|
||||
public Object5() {
|
||||
}
|
||||
|
||||
int anInt517;
|
||||
int anInt518;
|
||||
int anInt519;
|
||||
int anInt520;
|
||||
public Animable aClass30_Sub2_Sub4_521;
|
||||
public int anInt522;
|
||||
int anInt523;
|
||||
int anInt524;
|
||||
int anInt525;
|
||||
int anInt526;
|
||||
int anInt527;
|
||||
int anInt528;
|
||||
public int uid;
|
||||
byte aByte530;
|
||||
}
|
||||
@@ -0,0 +1,499 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public final class ObjectDef {
|
||||
|
||||
public static ObjectDef forID(int i) {
|
||||
for (int j = 0; j < 20; j++) {
|
||||
if (cache[j].type == i) {
|
||||
return cache[j];
|
||||
}
|
||||
}
|
||||
|
||||
cacheIndex = (cacheIndex + 1) % 20;
|
||||
ObjectDef class46 = cache[cacheIndex];
|
||||
stream.currentOffset = streamIndices[i];
|
||||
class46.type = i;
|
||||
class46.setDefaults();
|
||||
class46.readValues(stream);
|
||||
if (i == 6) {
|
||||
class46.actions[1] = "Load";
|
||||
class46.actions[2] = "Pick-up";
|
||||
}
|
||||
switch (i) {
|
||||
|
||||
}
|
||||
return class46;
|
||||
}
|
||||
|
||||
private void setDefaults() {
|
||||
anIntArray773 = null;
|
||||
anIntArray776 = null;
|
||||
name = null;
|
||||
description = null;
|
||||
modifiedModelColors = null;
|
||||
originalModelColors = null;
|
||||
anInt744 = 1;
|
||||
anInt761 = 1;
|
||||
aBoolean767 = true;
|
||||
aBoolean757 = true;
|
||||
hasActions = false;
|
||||
aBoolean762 = false;
|
||||
aBoolean769 = false;
|
||||
aBoolean764 = false;
|
||||
anInt781 = -1;
|
||||
anInt775 = 16;
|
||||
aByte737 = 0;
|
||||
aByte742 = 0;
|
||||
actions = null;
|
||||
anInt746 = -1;
|
||||
anInt758 = -1;
|
||||
aBoolean751 = false;
|
||||
aBoolean779 = true;
|
||||
anInt748 = 128;
|
||||
anInt772 = 128;
|
||||
anInt740 = 128;
|
||||
anInt768 = 0;
|
||||
anInt738 = 0;
|
||||
anInt745 = 0;
|
||||
anInt783 = 0;
|
||||
aBoolean736 = false;
|
||||
aBoolean766 = false;
|
||||
anInt760 = -1;
|
||||
anInt774 = -1;
|
||||
anInt749 = -1;
|
||||
childrenIDs = null;
|
||||
}
|
||||
|
||||
public void method574(OnDemandFetcher class42_sub1) {
|
||||
if (anIntArray773 == null) {
|
||||
return;
|
||||
}
|
||||
for (int element : anIntArray773) {
|
||||
class42_sub1.method560(element & 0xffff, 0);
|
||||
}
|
||||
}
|
||||
|
||||
public static void nullLoader() {
|
||||
mruNodes1 = null;
|
||||
mruNodes2 = null;
|
||||
streamIndices = null;
|
||||
cache = null;
|
||||
stream = null;
|
||||
}
|
||||
|
||||
public static void unpackConfig(StreamLoader streamLoader) {
|
||||
stream = new Stream(streamLoader.getDataForName("loc.dat"));
|
||||
Stream stream = new Stream(streamLoader.getDataForName("loc.idx"));
|
||||
int totalObjects = stream.readUnsignedWord();
|
||||
streamIndices = new int[totalObjects];
|
||||
int i = 2;
|
||||
for (int j = 0; j < totalObjects; j++) {
|
||||
streamIndices[j] = i;
|
||||
i += stream.readUnsignedWord();
|
||||
}
|
||||
|
||||
cache = new ObjectDef[20];
|
||||
for (int k = 0; k < 20; k++) {
|
||||
cache[k] = new ObjectDef();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean method577(int i) {
|
||||
if (anIntArray776 == null) {
|
||||
if (anIntArray773 == null) {
|
||||
return true;
|
||||
}
|
||||
if (i != 10) {
|
||||
return true;
|
||||
}
|
||||
boolean flag1 = true;
|
||||
for (int element : anIntArray773) {
|
||||
flag1 &= Model.method463(element & 0xffff);
|
||||
}
|
||||
|
||||
return flag1;
|
||||
}
|
||||
for (int j = 0; j < anIntArray776.length; j++) {
|
||||
if (anIntArray776[j] == i) {
|
||||
return Model.method463(anIntArray773[j] & 0xffff);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public Model method578(int i, int j, int k, int l, int i1, int j1, int k1) {
|
||||
Model model = method581(i, k1, j);
|
||||
if (model == null) {
|
||||
return null;
|
||||
}
|
||||
if (aBoolean762 || aBoolean769) {
|
||||
model = new Model(aBoolean762, aBoolean769, model);
|
||||
}
|
||||
if (aBoolean762) {
|
||||
int l1 = (k + l + i1 + j1) / 4;
|
||||
for (int i2 = 0; i2 < model.anInt1626; i2++) {
|
||||
int j2 = model.anIntArray1627[i2];
|
||||
int k2 = model.anIntArray1629[i2];
|
||||
int l2 = k + (l - k) * (j2 + 64) / 128;
|
||||
int i3 = j1 + (i1 - j1) * (j2 + 64) / 128;
|
||||
int j3 = l2 + (i3 - l2) * (k2 + 64) / 128;
|
||||
model.anIntArray1628[i2] += j3 - l1;
|
||||
}
|
||||
|
||||
model.method467();
|
||||
}
|
||||
return model;
|
||||
}
|
||||
|
||||
public boolean method579() {
|
||||
if (anIntArray773 == null) {
|
||||
return true;
|
||||
}
|
||||
boolean flag1 = true;
|
||||
for (int element : anIntArray773) {
|
||||
flag1 &= Model.method463(element & 0xffff);
|
||||
}
|
||||
return flag1;
|
||||
}
|
||||
|
||||
public ObjectDef method580() {
|
||||
int i = -1;
|
||||
if (anInt774 != -1) {
|
||||
VarBit varBit = VarBit.cache[anInt774];
|
||||
int j = varBit.anInt648;
|
||||
int k = varBit.anInt649;
|
||||
int l = varBit.anInt650;
|
||||
int i1 = Game.anIntArray1232[l - k];
|
||||
i = clientInstance.variousSettings[j] >> k & i1;
|
||||
} else if (anInt749 != -1) {
|
||||
i = clientInstance.variousSettings[anInt749];
|
||||
}
|
||||
if (i < 0 || i >= childrenIDs.length || childrenIDs[i] == -1) {
|
||||
return null;
|
||||
} else {
|
||||
return forID(childrenIDs[i]);
|
||||
}
|
||||
}
|
||||
|
||||
private Model method581(int j, int k, int l) {
|
||||
Model model = null;
|
||||
long l1;
|
||||
if (anIntArray776 == null) {
|
||||
if (j != 10) {
|
||||
return null;
|
||||
}
|
||||
l1 = (type << 6) + l + ((long) (k + 1) << 32);
|
||||
Model model_1 = (Model) mruNodes2.insertFromCache(l1);
|
||||
if (model_1 != null) {
|
||||
return model_1;
|
||||
}
|
||||
if (anIntArray773 == null) {
|
||||
return null;
|
||||
}
|
||||
boolean flag1 = aBoolean751 ^ l > 3;
|
||||
int k1 = anIntArray773.length;
|
||||
for (int i2 = 0; i2 < k1; i2++) {
|
||||
int l2 = anIntArray773[i2];
|
||||
if (flag1) {
|
||||
l2 += 0x10000;
|
||||
}
|
||||
model = (Model) mruNodes1.insertFromCache(l2);
|
||||
if (model == null) {
|
||||
model = Model.method462(l2 & 0xffff);
|
||||
if (model == null) {
|
||||
return null;
|
||||
}
|
||||
if (flag1) {
|
||||
model.method477();
|
||||
}
|
||||
mruNodes1.removeFromCache(model, l2);
|
||||
}
|
||||
if (k1 > 1) {
|
||||
aModelArray741s[i2] = model;
|
||||
}
|
||||
}
|
||||
|
||||
if (k1 > 1) {
|
||||
model = new Model(k1, aModelArray741s);
|
||||
}
|
||||
} else {
|
||||
int i1 = -1;
|
||||
for (int j1 = 0; j1 < anIntArray776.length; j1++) {
|
||||
if (anIntArray776[j1] != j) {
|
||||
continue;
|
||||
}
|
||||
i1 = j1;
|
||||
break;
|
||||
}
|
||||
|
||||
if (i1 == -1) {
|
||||
return null;
|
||||
}
|
||||
l1 = (type << 6) + (i1 << 3) + l + ((long) (k + 1) << 32);
|
||||
Model model_2 = (Model) mruNodes2.insertFromCache(l1);
|
||||
if (model_2 != null) {
|
||||
return model_2;
|
||||
}
|
||||
int j2 = anIntArray773[i1];
|
||||
boolean flag3 = aBoolean751 ^ l > 3;
|
||||
if (flag3) {
|
||||
j2 += 0x10000;
|
||||
}
|
||||
model = (Model) mruNodes1.insertFromCache(j2);
|
||||
if (model == null) {
|
||||
model = Model.method462(j2 & 0xffff);
|
||||
if (model == null) {
|
||||
return null;
|
||||
}
|
||||
if (flag3) {
|
||||
model.method477();
|
||||
}
|
||||
mruNodes1.removeFromCache(model, j2);
|
||||
}
|
||||
}
|
||||
boolean flag;
|
||||
flag = anInt748 != 128 || anInt772 != 128 || anInt740 != 128;
|
||||
boolean flag2;
|
||||
flag2 = anInt738 != 0 || anInt745 != 0 || anInt783 != 0;
|
||||
Model model_3 = new Model(modifiedModelColors == null, Class36.method532(k), l == 0 && k == -1 && !flag && !flag2, model);
|
||||
if (k != -1) {
|
||||
model_3.method469();
|
||||
model_3.method470(k);
|
||||
model_3.anIntArrayArray1658 = null;
|
||||
model_3.anIntArrayArray1657 = null;
|
||||
}
|
||||
while (l-- > 0) {
|
||||
model_3.method473();
|
||||
}
|
||||
if (modifiedModelColors != null) {
|
||||
for (int k2 = 0; k2 < modifiedModelColors.length; k2++) {
|
||||
model_3.method476(modifiedModelColors[k2], originalModelColors[k2]);
|
||||
}
|
||||
|
||||
}
|
||||
if (flag) {
|
||||
model_3.method478(anInt748, anInt740, anInt772);
|
||||
}
|
||||
if (flag2) {
|
||||
model_3.method475(anInt738, anInt745, anInt783);
|
||||
}
|
||||
model_3.method479(64 + aByte737, 768 + aByte742 * 5, -50, -10, -50, !aBoolean769);
|
||||
if (anInt760 == 1) {
|
||||
model_3.anInt1654 = model_3.modelHeight;
|
||||
}
|
||||
mruNodes2.removeFromCache(model_3, l1);
|
||||
return model_3;
|
||||
}
|
||||
|
||||
private void readValues(Stream stream) {
|
||||
int i = -1;
|
||||
label0 : do {
|
||||
int j;
|
||||
do {
|
||||
j = stream.readUnsignedByte();
|
||||
if (j == 0) {
|
||||
break label0;
|
||||
}
|
||||
if (j == 1) {
|
||||
int k = stream.readUnsignedByte();
|
||||
if (k > 0) {
|
||||
if (anIntArray773 == null || lowMem) {
|
||||
anIntArray776 = new int[k];
|
||||
anIntArray773 = new int[k];
|
||||
for (int k1 = 0; k1 < k; k1++) {
|
||||
anIntArray773[k1] = stream.readUnsignedWord();
|
||||
anIntArray776[k1] = stream.readUnsignedByte();
|
||||
}
|
||||
|
||||
} else {
|
||||
stream.currentOffset += k * 3;
|
||||
}
|
||||
}
|
||||
} else if (j == 2) {
|
||||
name = stream.readString();
|
||||
} else if (j == 3) {
|
||||
description = stream.readBytes();
|
||||
} else if (j == 5) {
|
||||
int l = stream.readUnsignedByte();
|
||||
if (l > 0) {
|
||||
if (anIntArray773 == null || lowMem) {
|
||||
anIntArray776 = null;
|
||||
anIntArray773 = new int[l];
|
||||
for (int l1 = 0; l1 < l; l1++) {
|
||||
anIntArray773[l1] = stream.readUnsignedWord();
|
||||
}
|
||||
|
||||
} else {
|
||||
stream.currentOffset += l * 2;
|
||||
}
|
||||
}
|
||||
} else if (j == 14) {
|
||||
anInt744 = stream.readUnsignedByte();
|
||||
} else if (j == 15) {
|
||||
anInt761 = stream.readUnsignedByte();
|
||||
} else if (j == 17) {
|
||||
aBoolean767 = false;
|
||||
} else if (j == 18) {
|
||||
aBoolean757 = false;
|
||||
} else if (j == 19) {
|
||||
i = stream.readUnsignedByte();
|
||||
if (i == 1) {
|
||||
hasActions = true;
|
||||
}
|
||||
} else if (j == 21) {
|
||||
aBoolean762 = true;
|
||||
} else if (j == 22) {
|
||||
aBoolean769 = true;
|
||||
} else if (j == 23) {
|
||||
aBoolean764 = true;
|
||||
} else if (j == 24) {
|
||||
anInt781 = stream.readUnsignedWord();
|
||||
if (anInt781 == 65535) {
|
||||
anInt781 = -1;
|
||||
}
|
||||
} else if (j == 28) {
|
||||
anInt775 = stream.readUnsignedByte();
|
||||
} else if (j == 29) {
|
||||
aByte737 = stream.readSignedByte();
|
||||
} else if (j == 39) {
|
||||
aByte742 = stream.readSignedByte();
|
||||
} else if (j >= 30 && j < 39) {
|
||||
if (actions == null) {
|
||||
actions = new String[5];
|
||||
}
|
||||
actions[j - 30] = stream.readString();
|
||||
if (actions[j - 30].equalsIgnoreCase("hidden")) {
|
||||
actions[j - 30] = null;
|
||||
}
|
||||
} else if (j == 40) {
|
||||
int i1 = stream.readUnsignedByte();
|
||||
modifiedModelColors = new int[i1];
|
||||
originalModelColors = new int[i1];
|
||||
for (int i2 = 0; i2 < i1; i2++) {
|
||||
modifiedModelColors[i2] = stream.readUnsignedWord();
|
||||
originalModelColors[i2] = stream.readUnsignedWord();
|
||||
}
|
||||
|
||||
} else if (j == 60) {
|
||||
anInt746 = stream.readUnsignedWord();
|
||||
} else if (j == 62) {
|
||||
aBoolean751 = true;
|
||||
} else if (j == 64) {
|
||||
aBoolean779 = false;
|
||||
} else if (j == 65) {
|
||||
anInt748 = stream.readUnsignedWord();
|
||||
} else if (j == 66) {
|
||||
anInt772 = stream.readUnsignedWord();
|
||||
} else if (j == 67) {
|
||||
anInt740 = stream.readUnsignedWord();
|
||||
} else if (j == 68) {
|
||||
anInt758 = stream.readUnsignedWord();
|
||||
} else if (j == 69) {
|
||||
anInt768 = stream.readUnsignedByte();
|
||||
} else if (j == 70) {
|
||||
anInt738 = stream.readSignedWord();
|
||||
} else if (j == 71) {
|
||||
anInt745 = stream.readSignedWord();
|
||||
} else if (j == 72) {
|
||||
anInt783 = stream.readSignedWord();
|
||||
} else if (j == 73) {
|
||||
aBoolean736 = true;
|
||||
} else if (j == 74) {
|
||||
aBoolean766 = true;
|
||||
} else {
|
||||
if (j != 75) {
|
||||
continue;
|
||||
}
|
||||
anInt760 = stream.readUnsignedByte();
|
||||
}
|
||||
continue label0;
|
||||
} while (j != 77);
|
||||
anInt774 = stream.readUnsignedWord();
|
||||
if (anInt774 == 65535) {
|
||||
anInt774 = -1;
|
||||
}
|
||||
anInt749 = stream.readUnsignedWord();
|
||||
if (anInt749 == 65535) {
|
||||
anInt749 = -1;
|
||||
}
|
||||
int j1 = stream.readUnsignedByte();
|
||||
childrenIDs = new int[j1 + 1];
|
||||
for (int j2 = 0; j2 <= j1; j2++) {
|
||||
childrenIDs[j2] = stream.readUnsignedWord();
|
||||
if (childrenIDs[j2] == 65535) {
|
||||
childrenIDs[j2] = -1;
|
||||
}
|
||||
}
|
||||
|
||||
} while (true);
|
||||
if (i == -1) {
|
||||
hasActions = anIntArray773 != null && (anIntArray776 == null || anIntArray776[0] == 10);
|
||||
if (actions != null) {
|
||||
hasActions = true;
|
||||
}
|
||||
}
|
||||
if (aBoolean766) {
|
||||
aBoolean767 = false;
|
||||
aBoolean757 = false;
|
||||
}
|
||||
if (anInt760 == -1) {
|
||||
anInt760 = aBoolean767 ? 1 : 0;
|
||||
}
|
||||
}
|
||||
|
||||
private ObjectDef() {
|
||||
type = -1;
|
||||
}
|
||||
|
||||
public boolean aBoolean736;
|
||||
private byte aByte737;
|
||||
private int anInt738;
|
||||
public String name;
|
||||
private int anInt740;
|
||||
private static final Model[] aModelArray741s = new Model[4];
|
||||
private byte aByte742;
|
||||
public int anInt744;
|
||||
private int anInt745;
|
||||
public int anInt746;
|
||||
private int[] originalModelColors;
|
||||
private int anInt748;
|
||||
public int anInt749;
|
||||
private boolean aBoolean751;
|
||||
public static boolean lowMem;
|
||||
private static Stream stream;
|
||||
public int type;
|
||||
private static int[] streamIndices;
|
||||
public boolean aBoolean757;
|
||||
public int anInt758;
|
||||
public int childrenIDs[];
|
||||
private int anInt760;
|
||||
public int anInt761;
|
||||
public boolean aBoolean762;
|
||||
public boolean aBoolean764;
|
||||
public static Game clientInstance;
|
||||
private boolean aBoolean766;
|
||||
public boolean aBoolean767;
|
||||
public int anInt768;
|
||||
private boolean aBoolean769;
|
||||
private static int cacheIndex;
|
||||
private int anInt772;
|
||||
private int[] anIntArray773;
|
||||
public int anInt774;
|
||||
public int anInt775;
|
||||
private int[] anIntArray776;
|
||||
public byte description[];
|
||||
public boolean hasActions;
|
||||
public boolean aBoolean779;
|
||||
public static MRUNodes mruNodes2 = new MRUNodes(30);
|
||||
public int anInt781;
|
||||
private static ObjectDef[] cache;
|
||||
private int anInt783;
|
||||
private int[] modifiedModelColors;
|
||||
public static MRUNodes mruNodes1 = new MRUNodes(500);
|
||||
public String actions[];
|
||||
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,16 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public final class OnDemandData extends NodeSub {
|
||||
|
||||
public OnDemandData() {
|
||||
incomplete = true;
|
||||
}
|
||||
|
||||
int dataType;
|
||||
byte buffer[];
|
||||
int ID;
|
||||
boolean incomplete;
|
||||
int loopCycle;
|
||||
}
|
||||
@@ -0,0 +1,682 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.Socket;
|
||||
import java.util.zip.CRC32;
|
||||
import java.util.zip.GZIPInputStream;
|
||||
|
||||
public final class OnDemandFetcher extends OnDemandFetcherParent implements Runnable {
|
||||
|
||||
/* private boolean crcMatches(int i, int j, byte abyte0[])
|
||||
{
|
||||
//if(abyte0 == null || abyte0.length < 2)
|
||||
//return false;
|
||||
int k = abyte0.length - 2;
|
||||
int l = ((abyte0[k] & 0xff) << 8) + (abyte0[k + 1] & 0xff);
|
||||
crc32.reset();
|
||||
crc32.update(abyte0, 0, k);
|
||||
int i1 = (int) crc32.getValue();
|
||||
//return l == i && i1 == j;
|
||||
return true;
|
||||
|
||||
}*/
|
||||
|
||||
// XXX: Fixed and refactored the crcMatches method. - Ryley
|
||||
private boolean crcMatches(int type, int id, byte[] data) {
|
||||
if (data == null || data.length < 2) {
|
||||
return false;
|
||||
}
|
||||
int length = data.length - 2;
|
||||
int hash = ((data[length] & 0xFF) << 8) + (data[length + 1] & 0xFF);
|
||||
crc32.reset();
|
||||
crc32.update(data, 0, length);
|
||||
int crc = (int) crc32.getValue();
|
||||
return hash == type && crc == id;
|
||||
}
|
||||
|
||||
private void readData() {
|
||||
try {
|
||||
int available = inputStream.available();
|
||||
if (expectedSize == 0 && available >= 6) {
|
||||
waiting = true;
|
||||
for (int k = 0; k < 6; k += inputStream.read(ioBuffer, k, 6 - k)) {
|
||||
;
|
||||
}
|
||||
int l = ioBuffer[0] & 0xff;
|
||||
int j1 = ((ioBuffer[1] & 0xff) << 8) + (ioBuffer[2] & 0xff);
|
||||
int l1 = ((ioBuffer[3] & 0xff) << 8) + (ioBuffer[4] & 0xff);
|
||||
int i2 = ioBuffer[5] & 0xff;
|
||||
current = null;
|
||||
for (OnDemandData onDemandData = (OnDemandData) requested.reverseGetFirst(); onDemandData != null; onDemandData = (OnDemandData) requested.reverseGetNext()) {
|
||||
if (onDemandData.dataType == l && onDemandData.ID == j1) {
|
||||
current = onDemandData;
|
||||
}
|
||||
if (current != null) {
|
||||
onDemandData.loopCycle = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (current != null) {
|
||||
loopCycle = 0;
|
||||
if (l1 == 0) {
|
||||
Signlink.reporterror("Rej: " + l + "," + j1);
|
||||
current.buffer = null;
|
||||
if (current.incomplete) {
|
||||
synchronized (aClass19_1358) {
|
||||
aClass19_1358.insertHead(current);
|
||||
}
|
||||
} else {
|
||||
current.unlink();
|
||||
}
|
||||
current = null;
|
||||
} else {
|
||||
if (current.buffer == null && i2 == 0) {
|
||||
current.buffer = new byte[l1];
|
||||
}
|
||||
if (current.buffer == null && i2 != 0) {
|
||||
throw new IOException("missing start of file");
|
||||
}
|
||||
}
|
||||
}
|
||||
completedSize = i2 * 500;
|
||||
expectedSize = 500;
|
||||
if (expectedSize > l1 - i2 * 500) {
|
||||
expectedSize = l1 - i2 * 500;
|
||||
}
|
||||
}
|
||||
if (expectedSize > 0 && available >= expectedSize) {
|
||||
waiting = true;
|
||||
byte abyte0[] = ioBuffer;
|
||||
int i1 = 0;
|
||||
if (current != null) {
|
||||
abyte0 = current.buffer;
|
||||
i1 = completedSize;
|
||||
}
|
||||
for (int k1 = 0; k1 < expectedSize; k1 += inputStream.read(abyte0, k1 + i1, expectedSize - k1)) {
|
||||
;
|
||||
}
|
||||
if (expectedSize + completedSize >= abyte0.length && current != null) {
|
||||
if (clientInstance.decompressors[0] != null) {
|
||||
clientInstance.decompressors[current.dataType + 1].method234(abyte0.length, abyte0, current.ID);
|
||||
}
|
||||
if (!current.incomplete && current.dataType == 3) {
|
||||
current.incomplete = true;
|
||||
current.dataType = 93;
|
||||
}
|
||||
if (current.incomplete) {
|
||||
synchronized (aClass19_1358) {
|
||||
aClass19_1358.insertHead(current);
|
||||
}
|
||||
} else {
|
||||
current.unlink();
|
||||
}
|
||||
}
|
||||
expectedSize = 0;
|
||||
}
|
||||
} catch (IOException ioexception) {
|
||||
try {
|
||||
socket.close();
|
||||
} catch (Exception _ex) {
|
||||
}
|
||||
socket = null;
|
||||
inputStream = null;
|
||||
outputStream = null;
|
||||
expectedSize = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void start(StreamLoader streamLoader, Game client1) {
|
||||
String as[] = {"model_version", "anim_version", "midi_version", "map_version"};
|
||||
for (int i = 0; i < 4; i++) {
|
||||
byte abyte0[] = streamLoader.getDataForName(as[i]);
|
||||
int j = abyte0.length / 2;
|
||||
Stream stream = new Stream(abyte0);
|
||||
versions[i] = new int[j];
|
||||
fileStatus[i] = new byte[j];
|
||||
for (int l = 0; l < j; l++) {
|
||||
versions[i][l] = stream.readUnsignedWord();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
String as1[] = {"model_crc", "anim_crc", "midi_crc", "map_crc"};
|
||||
for (int k = 0; k < 4; k++) {
|
||||
byte abyte1[] = streamLoader.getDataForName(as1[k]);
|
||||
int i1 = abyte1.length / 4;
|
||||
Stream stream_1 = new Stream(abyte1);
|
||||
crcs[k] = new int[i1];
|
||||
for (int l1 = 0; l1 < i1; l1++) {
|
||||
crcs[k][l1] = stream_1.readDWord();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
byte abyte2[] = streamLoader.getDataForName("model_index");
|
||||
int j1 = versions[0].length;
|
||||
modelIndices = new byte[j1];
|
||||
for (int k1 = 0; k1 < j1; k1++) {
|
||||
if (k1 < abyte2.length) {
|
||||
modelIndices[k1] = abyte2[k1];
|
||||
} else {
|
||||
modelIndices[k1] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
abyte2 = streamLoader.getDataForName("map_index");
|
||||
Stream stream2 = new Stream(abyte2);
|
||||
j1 = abyte2.length / 7;
|
||||
mapIndices1 = new int[j1];
|
||||
mapIndices2 = new int[j1];
|
||||
mapIndices3 = new int[j1];
|
||||
mapIndices4 = new int[j1];
|
||||
for (int i2 = 0; i2 < j1; i2++) {
|
||||
mapIndices1[i2] = stream2.readUnsignedWord();
|
||||
mapIndices2[i2] = stream2.readUnsignedWord();
|
||||
mapIndices3[i2] = stream2.readUnsignedWord();
|
||||
mapIndices4[i2] = stream2.readUnsignedByte();
|
||||
}
|
||||
|
||||
abyte2 = streamLoader.getDataForName("anim_index");
|
||||
stream2 = new Stream(abyte2);
|
||||
j1 = abyte2.length / 2;
|
||||
anIntArray1360 = new int[j1];
|
||||
for (int j2 = 0; j2 < j1; j2++) {
|
||||
anIntArray1360[j2] = stream2.readUnsignedWord();
|
||||
}
|
||||
|
||||
abyte2 = streamLoader.getDataForName("midi_index");
|
||||
stream2 = new Stream(abyte2);
|
||||
j1 = abyte2.length;
|
||||
anIntArray1348 = new int[j1];
|
||||
for (int k2 = 0; k2 < j1; k2++) {
|
||||
anIntArray1348[k2] = stream2.readUnsignedByte();
|
||||
}
|
||||
|
||||
clientInstance = client1;
|
||||
running = true;
|
||||
clientInstance.startRunnable(this, 2);
|
||||
}
|
||||
|
||||
public int getNodeCount() {
|
||||
synchronized (nodeSubList) {
|
||||
return nodeSubList.getNodeCount();
|
||||
}
|
||||
}
|
||||
|
||||
public void disable() {
|
||||
running = false;
|
||||
}
|
||||
|
||||
public void method554(boolean flag) {
|
||||
int j = mapIndices1.length;
|
||||
for (int k = 0; k < j; k++) {
|
||||
if (flag || mapIndices4[k] != 0) {
|
||||
method563((byte) 2, 3, mapIndices3[k]);
|
||||
method563((byte) 2, 3, mapIndices2[k]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int getVersionCount(int j) {
|
||||
return versions[j].length;
|
||||
}
|
||||
|
||||
private void closeRequest(OnDemandData onDemandData) {
|
||||
try {
|
||||
if (socket == null) {
|
||||
long l = System.currentTimeMillis();
|
||||
if (l - openSocketTime < 4000L) {
|
||||
return;
|
||||
}
|
||||
openSocketTime = l;
|
||||
socket = clientInstance.openSocket(43596 + Game.portOff);
|
||||
inputStream = socket.getInputStream();
|
||||
outputStream = socket.getOutputStream();
|
||||
outputStream.write(15);
|
||||
for (int j = 0; j < 8; j++) {
|
||||
inputStream.read();
|
||||
}
|
||||
|
||||
loopCycle = 0;
|
||||
}
|
||||
ioBuffer[0] = (byte) onDemandData.dataType;
|
||||
ioBuffer[1] = (byte) (onDemandData.ID >> 8);
|
||||
ioBuffer[2] = (byte) onDemandData.ID;
|
||||
if (onDemandData.incomplete) {
|
||||
ioBuffer[3] = 2;
|
||||
} else if (!clientInstance.loggedIn) {
|
||||
ioBuffer[3] = 1;
|
||||
} else {
|
||||
ioBuffer[3] = 0;
|
||||
}
|
||||
outputStream.write(ioBuffer, 0, 4);
|
||||
writeLoopCycle = 0;
|
||||
anInt1349 = -10000;
|
||||
return;
|
||||
} catch (IOException ioexception) {
|
||||
}
|
||||
try {
|
||||
socket.close();
|
||||
} catch (Exception _ex) {
|
||||
}
|
||||
socket = null;
|
||||
inputStream = null;
|
||||
outputStream = null;
|
||||
expectedSize = 0;
|
||||
anInt1349++;
|
||||
}
|
||||
|
||||
public int getAnimCount() {
|
||||
return anIntArray1360.length;
|
||||
}
|
||||
|
||||
public void method558(int i, int j) {
|
||||
if (i < 0 || i > versions.length || j < 0 || j > versions[i].length) {
|
||||
return;
|
||||
}
|
||||
if (versions[i][j] == 0) {
|
||||
return;
|
||||
}
|
||||
synchronized (nodeSubList) {
|
||||
for (OnDemandData onDemandData = (OnDemandData) nodeSubList.reverseGetFirst(); onDemandData != null; onDemandData = (OnDemandData) nodeSubList.reverseGetNext()) {
|
||||
if (onDemandData.dataType == i && onDemandData.ID == j) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
OnDemandData onDemandData_1 = new OnDemandData();
|
||||
onDemandData_1.dataType = i;
|
||||
onDemandData_1.ID = j;
|
||||
onDemandData_1.incomplete = true;
|
||||
synchronized (aClass19_1370) {
|
||||
aClass19_1370.insertHead(onDemandData_1);
|
||||
}
|
||||
nodeSubList.insertHead(onDemandData_1);
|
||||
}
|
||||
}
|
||||
|
||||
public int getModelIndex(int i) {
|
||||
return modelIndices[i] & 0xff;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
while (running) {
|
||||
onDemandCycle++;
|
||||
int i = 20;
|
||||
if (anInt1332 == 0 && clientInstance.decompressors[0] != null) {
|
||||
i = 50;
|
||||
}
|
||||
try {
|
||||
Thread.sleep(i);
|
||||
} catch (Exception _ex) {
|
||||
}
|
||||
waiting = true;
|
||||
for (int j = 0; j < 100; j++) {
|
||||
if (!waiting) {
|
||||
break;
|
||||
}
|
||||
waiting = false;
|
||||
checkReceived();
|
||||
handleFailed();
|
||||
if (uncompletedCount == 0 && j >= 5) {
|
||||
break;
|
||||
}
|
||||
method568();
|
||||
if (inputStream != null) {
|
||||
readData();
|
||||
}
|
||||
}
|
||||
|
||||
boolean flag = false;
|
||||
for (OnDemandData onDemandData = (OnDemandData) requested.reverseGetFirst(); onDemandData != null; onDemandData = (OnDemandData) requested.reverseGetNext()) {
|
||||
if (onDemandData.incomplete) {
|
||||
flag = true;
|
||||
onDemandData.loopCycle++;
|
||||
if (onDemandData.loopCycle > 50) {
|
||||
onDemandData.loopCycle = 0;
|
||||
closeRequest(onDemandData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!flag) {
|
||||
for (OnDemandData onDemandData_1 = (OnDemandData) requested.reverseGetFirst(); onDemandData_1 != null; onDemandData_1 = (OnDemandData) requested.reverseGetNext()) {
|
||||
flag = true;
|
||||
onDemandData_1.loopCycle++;
|
||||
if (onDemandData_1.loopCycle > 50) {
|
||||
onDemandData_1.loopCycle = 0;
|
||||
closeRequest(onDemandData_1);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (flag) {
|
||||
loopCycle++;
|
||||
if (loopCycle > 750) {
|
||||
try {
|
||||
socket.close();
|
||||
} catch (Exception _ex) {
|
||||
}
|
||||
socket = null;
|
||||
inputStream = null;
|
||||
outputStream = null;
|
||||
expectedSize = 0;
|
||||
}
|
||||
} else {
|
||||
loopCycle = 0;
|
||||
statusString = "";
|
||||
}
|
||||
if (clientInstance.loggedIn && socket != null && outputStream != null && (anInt1332 > 0 || clientInstance.decompressors[0] == null)) {
|
||||
writeLoopCycle++;
|
||||
if (writeLoopCycle > 500) {
|
||||
writeLoopCycle = 0;
|
||||
ioBuffer[0] = 0;
|
||||
ioBuffer[1] = 0;
|
||||
ioBuffer[2] = 0;
|
||||
ioBuffer[3] = 10;
|
||||
try {
|
||||
outputStream.write(ioBuffer, 0, 4);
|
||||
} catch (IOException _ex) {
|
||||
loopCycle = 5000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception exception) {
|
||||
Signlink.reporterror("od_ex " + exception.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public void method560(int i, int j) {
|
||||
if (clientInstance.decompressors[0] == null) {
|
||||
return;
|
||||
}
|
||||
if (versions[j][i] == 0) {
|
||||
return;
|
||||
}
|
||||
if (fileStatus[j][i] == 0) {
|
||||
return;
|
||||
}
|
||||
if (anInt1332 == 0) {
|
||||
return;
|
||||
}
|
||||
OnDemandData onDemandData = new OnDemandData();
|
||||
onDemandData.dataType = j;
|
||||
onDemandData.ID = i;
|
||||
onDemandData.incomplete = false;
|
||||
synchronized (aClass19_1344) {
|
||||
aClass19_1344.insertHead(onDemandData);
|
||||
}
|
||||
}
|
||||
|
||||
public OnDemandData getNextNode() {
|
||||
OnDemandData onDemandData;
|
||||
synchronized (aClass19_1358) {
|
||||
onDemandData = (OnDemandData) aClass19_1358.popHead();
|
||||
}
|
||||
if (onDemandData == null) {
|
||||
return null;
|
||||
}
|
||||
synchronized (nodeSubList) {
|
||||
onDemandData.unlinkSub();
|
||||
}
|
||||
if (onDemandData.buffer == null) {
|
||||
return onDemandData;
|
||||
}
|
||||
int i = 0;
|
||||
try {
|
||||
GZIPInputStream gzipinputstream = new GZIPInputStream(new ByteArrayInputStream(onDemandData.buffer));
|
||||
do {
|
||||
if (i == gzipInputBuffer.length) {
|
||||
throw new RuntimeException("buffer overflow!");
|
||||
}
|
||||
int k = gzipinputstream.read(gzipInputBuffer, i, gzipInputBuffer.length - i);
|
||||
if (k == -1) {
|
||||
break;
|
||||
}
|
||||
i += k;
|
||||
} while (true);
|
||||
} catch (IOException _ex) {
|
||||
throw new RuntimeException("error unzipping");
|
||||
}
|
||||
onDemandData.buffer = new byte[i];
|
||||
System.arraycopy(gzipInputBuffer, 0, onDemandData.buffer, 0, i);
|
||||
|
||||
return onDemandData;
|
||||
}
|
||||
|
||||
public int method562(int i, int k, int l) {
|
||||
int i1 = (l << 8) + k;
|
||||
for (int j1 = 0; j1 < mapIndices1.length; j1++) {
|
||||
if (mapIndices1[j1] == i1) {
|
||||
if (i == 0) {
|
||||
return mapIndices2[j1];
|
||||
} else {
|
||||
return mapIndices3[j1];
|
||||
}
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void method548(int i) {
|
||||
method558(0, i);
|
||||
}
|
||||
|
||||
public void method563(byte byte0, int i, int j) {
|
||||
if (clientInstance.decompressors[0] == null) {
|
||||
return;
|
||||
}
|
||||
if (versions[i][j] == 0) {
|
||||
return;
|
||||
}
|
||||
byte abyte0[] = clientInstance.decompressors[i + 1].decompress(j);
|
||||
if (crcMatches(versions[i][j], crcs[i][j], abyte0)) {
|
||||
return;
|
||||
}
|
||||
fileStatus[i][j] = byte0;
|
||||
if (byte0 > anInt1332) {
|
||||
anInt1332 = byte0;
|
||||
}
|
||||
totalFiles++;
|
||||
}
|
||||
|
||||
public boolean method564(int i) {
|
||||
for (int k = 0; k < mapIndices1.length; k++) {
|
||||
if (mapIndices3[k] == i) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void handleFailed() {
|
||||
uncompletedCount = 0;
|
||||
completedCount = 0;
|
||||
for (OnDemandData onDemandData = (OnDemandData) requested.reverseGetFirst(); onDemandData != null; onDemandData = (OnDemandData) requested.reverseGetNext()) {
|
||||
if (onDemandData.incomplete) {
|
||||
uncompletedCount++;
|
||||
} else {
|
||||
completedCount++;
|
||||
}
|
||||
}
|
||||
|
||||
while (uncompletedCount < 10) {
|
||||
OnDemandData onDemandData_1 = (OnDemandData) aClass19_1368.popHead();
|
||||
if (onDemandData_1 == null) {
|
||||
break;
|
||||
}
|
||||
if (fileStatus[onDemandData_1.dataType][onDemandData_1.ID] != 0) {
|
||||
filesLoaded++;
|
||||
}
|
||||
fileStatus[onDemandData_1.dataType][onDemandData_1.ID] = 0;
|
||||
requested.insertHead(onDemandData_1);
|
||||
uncompletedCount++;
|
||||
closeRequest(onDemandData_1);
|
||||
waiting = true;
|
||||
}
|
||||
}
|
||||
|
||||
public void method566() {
|
||||
synchronized (aClass19_1344) {
|
||||
aClass19_1344.removeAll();
|
||||
}
|
||||
}
|
||||
|
||||
private void checkReceived() {
|
||||
OnDemandData onDemandData;
|
||||
synchronized (aClass19_1370) {
|
||||
onDemandData = (OnDemandData) aClass19_1370.popHead();
|
||||
}
|
||||
while (onDemandData != null) {
|
||||
waiting = true;
|
||||
byte abyte0[] = null;
|
||||
if (clientInstance.decompressors[0] != null) {
|
||||
abyte0 = clientInstance.decompressors[onDemandData.dataType + 1].decompress(onDemandData.ID);
|
||||
}
|
||||
if (!crcMatches(versions[onDemandData.dataType][onDemandData.ID], crcs[onDemandData.dataType][onDemandData.ID], abyte0)) {
|
||||
abyte0 = null;
|
||||
}
|
||||
synchronized (aClass19_1370) {
|
||||
if (abyte0 == null) {
|
||||
aClass19_1368.insertHead(onDemandData);
|
||||
} else {
|
||||
onDemandData.buffer = abyte0;
|
||||
synchronized (aClass19_1358) {
|
||||
aClass19_1358.insertHead(onDemandData);
|
||||
}
|
||||
}
|
||||
onDemandData = (OnDemandData) aClass19_1370.popHead();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void method568() {
|
||||
while (uncompletedCount == 0 && completedCount < 10) {
|
||||
if (anInt1332 == 0) {
|
||||
break;
|
||||
}
|
||||
OnDemandData onDemandData;
|
||||
synchronized (aClass19_1344) {
|
||||
onDemandData = (OnDemandData) aClass19_1344.popHead();
|
||||
}
|
||||
while (onDemandData != null) {
|
||||
if (fileStatus[onDemandData.dataType][onDemandData.ID] != 0) {
|
||||
fileStatus[onDemandData.dataType][onDemandData.ID] = 0;
|
||||
requested.insertHead(onDemandData);
|
||||
closeRequest(onDemandData);
|
||||
waiting = true;
|
||||
if (filesLoaded < totalFiles) {
|
||||
filesLoaded++;
|
||||
}
|
||||
statusString = "Loading extra files - " + filesLoaded * 100 / totalFiles + "%";
|
||||
completedCount++;
|
||||
if (completedCount == 10) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
synchronized (aClass19_1344) {
|
||||
onDemandData = (OnDemandData) aClass19_1344.popHead();
|
||||
}
|
||||
}
|
||||
for (int j = 0; j < 4; j++) {
|
||||
byte abyte0[] = fileStatus[j];
|
||||
int k = abyte0.length;
|
||||
for (int l = 0; l < k; l++) {
|
||||
if (abyte0[l] == anInt1332) {
|
||||
abyte0[l] = 0;
|
||||
OnDemandData onDemandData_1 = new OnDemandData();
|
||||
onDemandData_1.dataType = j;
|
||||
onDemandData_1.ID = l;
|
||||
onDemandData_1.incomplete = false;
|
||||
requested.insertHead(onDemandData_1);
|
||||
closeRequest(onDemandData_1);
|
||||
waiting = true;
|
||||
if (filesLoaded < totalFiles) {
|
||||
filesLoaded++;
|
||||
}
|
||||
statusString = "Loading extra files - " + filesLoaded * 100 / totalFiles + "%";
|
||||
completedCount++;
|
||||
if (completedCount == 10) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
anInt1332--;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean method569(int i) {
|
||||
return anIntArray1348[i] == 1;
|
||||
}
|
||||
|
||||
public OnDemandFetcher() {
|
||||
requested = new NodeList();
|
||||
statusString = "";
|
||||
crc32 = new CRC32();
|
||||
ioBuffer = new byte[500];
|
||||
fileStatus = new byte[4][];
|
||||
aClass19_1344 = new NodeList();
|
||||
running = true;
|
||||
waiting = false;
|
||||
aClass19_1358 = new NodeList();
|
||||
gzipInputBuffer = new byte[65000];
|
||||
nodeSubList = new NodeSubList();
|
||||
versions = new int[4][];
|
||||
crcs = new int[4][];
|
||||
aClass19_1368 = new NodeList();
|
||||
aClass19_1370 = new NodeList();
|
||||
}
|
||||
|
||||
private int totalFiles;
|
||||
private final NodeList requested;
|
||||
private int anInt1332;
|
||||
public String statusString;
|
||||
private int writeLoopCycle;
|
||||
private long openSocketTime;
|
||||
private int[] mapIndices3;
|
||||
private final CRC32 crc32;
|
||||
private final byte[] ioBuffer;
|
||||
public int onDemandCycle;
|
||||
private final byte[][] fileStatus;
|
||||
private Game clientInstance;
|
||||
private final NodeList aClass19_1344;
|
||||
private int completedSize;
|
||||
private int expectedSize;
|
||||
int[] anIntArray1348;
|
||||
public int anInt1349;
|
||||
private int[] mapIndices2;
|
||||
private int filesLoaded;
|
||||
private boolean running;
|
||||
private OutputStream outputStream;
|
||||
private int[] mapIndices4;
|
||||
private boolean waiting;
|
||||
private final NodeList aClass19_1358;
|
||||
private final byte[] gzipInputBuffer;
|
||||
private int[] anIntArray1360;
|
||||
private final NodeSubList nodeSubList;
|
||||
private InputStream inputStream;
|
||||
private Socket socket;
|
||||
public final int[][] versions;
|
||||
public final int[][] crcs;
|
||||
private int uncompletedCount;
|
||||
private int completedCount;
|
||||
private final NodeList aClass19_1368;
|
||||
private OnDemandData current;
|
||||
private final NodeList aClass19_1370;
|
||||
private int[] mapIndices1;
|
||||
private byte[] modelIndices;
|
||||
private int loopCycle;
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public class OnDemandFetcherParent {
|
||||
|
||||
public void method548(int i) {
|
||||
}
|
||||
|
||||
OnDemandFetcherParent() {
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,376 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public final class Player extends Entity {
|
||||
|
||||
@Override
|
||||
public Model getRotatedModel() {
|
||||
if (!visible) {
|
||||
return null;
|
||||
}
|
||||
Model model = method452();
|
||||
if (model == null) {
|
||||
return null;
|
||||
}
|
||||
super.height = model.modelHeight;
|
||||
model.aBoolean1659 = true;
|
||||
if (aBoolean1699) {
|
||||
return model;
|
||||
}
|
||||
if (super.anInt1520 != -1 && super.anInt1521 != -1) {
|
||||
SpotAnim spotAnim = SpotAnim.cache[super.anInt1520];
|
||||
Model model_2 = spotAnim.getModel();
|
||||
if (model_2 != null) {
|
||||
Model model_3 = new Model(true, Class36.method532(super.anInt1521), false, model_2);
|
||||
model_3.method475(0, -super.anInt1524, 0);
|
||||
model_3.method469();
|
||||
model_3.method470(spotAnim.aAnimation_407.anIntArray353[super.anInt1521]);
|
||||
model_3.anIntArrayArray1658 = null;
|
||||
model_3.anIntArrayArray1657 = null;
|
||||
if (spotAnim.anInt410 != 128 || spotAnim.anInt411 != 128) {
|
||||
model_3.method478(spotAnim.anInt410, spotAnim.anInt410, spotAnim.anInt411);
|
||||
}
|
||||
model_3.method479(64 + spotAnim.anInt413, 850 + spotAnim.anInt414, -30, -50, -30, true);
|
||||
Model aclass30_sub2_sub4_sub6_1s[] = {model, model_3};
|
||||
model = new Model(aclass30_sub2_sub4_sub6_1s);
|
||||
}
|
||||
}
|
||||
if (aModel_1714 != null) {
|
||||
if (Game.loopCycle >= anInt1708) {
|
||||
aModel_1714 = null;
|
||||
}
|
||||
if (Game.loopCycle >= anInt1707 && Game.loopCycle < anInt1708) {
|
||||
Model model_1 = aModel_1714;
|
||||
model_1.method475(anInt1711 - super.x, anInt1712 - anInt1709, anInt1713 - super.y);
|
||||
if (super.turnDirection == 512) {
|
||||
model_1.method473();
|
||||
model_1.method473();
|
||||
model_1.method473();
|
||||
} else if (super.turnDirection == 1024) {
|
||||
model_1.method473();
|
||||
model_1.method473();
|
||||
} else if (super.turnDirection == 1536) {
|
||||
model_1.method473();
|
||||
}
|
||||
Model aclass30_sub2_sub4_sub6s[] = {model, model_1};
|
||||
model = new Model(aclass30_sub2_sub4_sub6s);
|
||||
if (super.turnDirection == 512) {
|
||||
model_1.method473();
|
||||
} else if (super.turnDirection == 1024) {
|
||||
model_1.method473();
|
||||
model_1.method473();
|
||||
} else if (super.turnDirection == 1536) {
|
||||
model_1.method473();
|
||||
model_1.method473();
|
||||
model_1.method473();
|
||||
}
|
||||
model_1.method475(super.x - anInt1711, anInt1709 - anInt1712, super.y - anInt1713);
|
||||
}
|
||||
}
|
||||
model.aBoolean1659 = true;
|
||||
return model;
|
||||
}
|
||||
|
||||
public void updatePlayer(Stream stream) {
|
||||
stream.currentOffset = 0;
|
||||
anInt1702 = stream.readUnsignedByte();
|
||||
headIcon = stream.readUnsignedByte();
|
||||
skullIcon = stream.readUnsignedByte();
|
||||
desc = null;
|
||||
team = 0;
|
||||
for (int j = 0; j < 12; j++) {
|
||||
int k = stream.readUnsignedByte();
|
||||
if (k == 0) {
|
||||
equipment[j] = 0;
|
||||
continue;
|
||||
}
|
||||
int i1 = stream.readUnsignedByte();
|
||||
equipment[j] = (k << 8) + i1;
|
||||
if (j == 0 && equipment[0] == 65535) {
|
||||
desc = EntityDef.forID(stream.readUnsignedWord());
|
||||
break;
|
||||
}
|
||||
if (equipment[j] >= 512 && equipment[j] - 512 < ItemDef.totalItems) {
|
||||
int l1 = ItemDef.forID(equipment[j] - 512).team;
|
||||
if (l1 != 0) {
|
||||
team = l1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int l = 0; l < 5; l++) {
|
||||
int j1 = stream.readUnsignedByte();
|
||||
if (j1 < 0 || j1 >= Game.anIntArrayArray1003[l].length) {
|
||||
j1 = 0;
|
||||
}
|
||||
anIntArray1700[l] = j1;
|
||||
}
|
||||
|
||||
super.anInt1511 = stream.readUnsignedWord();
|
||||
if (super.anInt1511 == 65535) {
|
||||
super.anInt1511 = -1;
|
||||
}
|
||||
super.anInt1512 = stream.readUnsignedWord();
|
||||
if (super.anInt1512 == 65535) {
|
||||
super.anInt1512 = -1;
|
||||
}
|
||||
super.anInt1554 = stream.readUnsignedWord();
|
||||
if (super.anInt1554 == 65535) {
|
||||
super.anInt1554 = -1;
|
||||
}
|
||||
super.anInt1555 = stream.readUnsignedWord();
|
||||
if (super.anInt1555 == 65535) {
|
||||
super.anInt1555 = -1;
|
||||
}
|
||||
super.anInt1556 = stream.readUnsignedWord();
|
||||
if (super.anInt1556 == 65535) {
|
||||
super.anInt1556 = -1;
|
||||
}
|
||||
super.anInt1557 = stream.readUnsignedWord();
|
||||
if (super.anInt1557 == 65535) {
|
||||
super.anInt1557 = -1;
|
||||
}
|
||||
super.anInt1505 = stream.readUnsignedWord();
|
||||
if (super.anInt1505 == 65535) {
|
||||
super.anInt1505 = -1;
|
||||
}
|
||||
name = TextClass.fixName(TextClass.nameForLong(stream.readQWord()));
|
||||
combatLevel = stream.readUnsignedByte();
|
||||
skill = stream.readUnsignedWord();
|
||||
visible = true;
|
||||
aLong1718 = 0L;
|
||||
for (int k1 = 0; k1 < 12; k1++) {
|
||||
aLong1718 <<= 4;
|
||||
if (equipment[k1] >= 256) {
|
||||
aLong1718 += equipment[k1] - 256;
|
||||
}
|
||||
}
|
||||
|
||||
if (equipment[0] >= 256) {
|
||||
aLong1718 += equipment[0] - 256 >> 4;
|
||||
}
|
||||
if (equipment[1] >= 256) {
|
||||
aLong1718 += equipment[1] - 256 >> 8;
|
||||
}
|
||||
for (int i2 = 0; i2 < 5; i2++) {
|
||||
aLong1718 <<= 3;
|
||||
aLong1718 += anIntArray1700[i2];
|
||||
}
|
||||
|
||||
aLong1718 <<= 1;
|
||||
aLong1718 += anInt1702;
|
||||
}
|
||||
|
||||
private Model method452() {
|
||||
if (desc != null) {
|
||||
int j = -1;
|
||||
if (super.anim >= 0 && super.anInt1529 == 0) {
|
||||
j = Animation.anims[super.anim].anIntArray353[super.anInt1527];
|
||||
} else if (super.anInt1517 >= 0) {
|
||||
j = Animation.anims[super.anInt1517].anIntArray353[super.anInt1518];
|
||||
}
|
||||
Model model = desc.method164(-1, j, null);
|
||||
return model;
|
||||
}
|
||||
long l = aLong1718;
|
||||
int k = -1;
|
||||
int i1 = -1;
|
||||
int j1 = -1;
|
||||
int k1 = -1;
|
||||
if (super.anim >= 0 && super.anInt1529 == 0) {
|
||||
Animation animation = Animation.anims[super.anim];
|
||||
k = animation.anIntArray353[super.anInt1527];
|
||||
if (super.anInt1517 >= 0 && super.anInt1517 != super.anInt1511) {
|
||||
i1 = Animation.anims[super.anInt1517].anIntArray353[super.anInt1518];
|
||||
}
|
||||
if (animation.anInt360 >= 0) {
|
||||
j1 = animation.anInt360;
|
||||
l += j1 - equipment[5] << 40;
|
||||
}
|
||||
if (animation.anInt361 >= 0) {
|
||||
k1 = animation.anInt361;
|
||||
l += k1 - equipment[3] << 48;
|
||||
}
|
||||
} else if (super.anInt1517 >= 0) {
|
||||
k = Animation.anims[super.anInt1517].anIntArray353[super.anInt1518];
|
||||
}
|
||||
Model model_1 = (Model) mruNodes.insertFromCache(l);
|
||||
if (model_1 == null) {
|
||||
boolean flag = false;
|
||||
for (int i2 = 0; i2 < 12; i2++) {
|
||||
int k2 = equipment[i2];
|
||||
if (k1 >= 0 && i2 == 3) {
|
||||
k2 = k1;
|
||||
}
|
||||
if (j1 >= 0 && i2 == 5) {
|
||||
k2 = j1;
|
||||
}
|
||||
if (k2 >= 256 && k2 < 512 && !IDK.cache[k2 - 256].method537()) {
|
||||
flag = true;
|
||||
}
|
||||
if (k2 >= 512 && !ItemDef.forID(k2 - 512).method195(anInt1702)) {
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (flag) {
|
||||
if (aLong1697 != -1L) {
|
||||
model_1 = (Model) mruNodes.insertFromCache(aLong1697);
|
||||
}
|
||||
if (model_1 == null) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (model_1 == null) {
|
||||
Model aclass30_sub2_sub4_sub6s[] = new Model[12];
|
||||
int j2 = 0;
|
||||
for (int l2 = 0; l2 < 12; l2++) {
|
||||
int i3 = equipment[l2];
|
||||
if (k1 >= 0 && l2 == 3) {
|
||||
i3 = k1;
|
||||
}
|
||||
if (j1 >= 0 && l2 == 5) {
|
||||
i3 = j1;
|
||||
}
|
||||
if (i3 >= 256 && i3 < 512) {
|
||||
Model model_3 = IDK.cache[i3 - 256].method538();
|
||||
if (model_3 != null) {
|
||||
aclass30_sub2_sub4_sub6s[j2++] = model_3;
|
||||
}
|
||||
}
|
||||
if (i3 >= 512) {
|
||||
Model model_4 = ItemDef.forID(i3 - 512).method196(anInt1702);
|
||||
if (model_4 != null) {
|
||||
aclass30_sub2_sub4_sub6s[j2++] = model_4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
model_1 = new Model(j2, aclass30_sub2_sub4_sub6s);
|
||||
for (int j3 = 0; j3 < 5; j3++) {
|
||||
if (anIntArray1700[j3] != 0) {
|
||||
model_1.method476(Game.anIntArrayArray1003[j3][0], Game.anIntArrayArray1003[j3][anIntArray1700[j3]]);
|
||||
if (j3 == 1) {
|
||||
model_1.method476(Game.anIntArray1204[0], Game.anIntArray1204[anIntArray1700[j3]]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
model_1.method469();
|
||||
model_1.method479(64, 850, -30, -50, -30, true);
|
||||
mruNodes.removeFromCache(model_1, l);
|
||||
aLong1697 = l;
|
||||
}
|
||||
if (aBoolean1699) {
|
||||
return model_1;
|
||||
}
|
||||
Model model_2 = Model.aModel_1621;
|
||||
model_2.method464(model_1, Class36.method532(k) & Class36.method532(i1));
|
||||
if (k != -1 && i1 != -1) {
|
||||
model_2.method471(Animation.anims[super.anim].anIntArray357, i1, k);
|
||||
} else if (k != -1) {
|
||||
model_2.method470(k);
|
||||
}
|
||||
model_2.method466();
|
||||
model_2.anIntArrayArray1658 = null;
|
||||
model_2.anIntArrayArray1657 = null;
|
||||
return model_2;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isVisible() {
|
||||
return visible;
|
||||
}
|
||||
|
||||
public int privelage;
|
||||
public Model method453() {
|
||||
if (!visible) {
|
||||
return null;
|
||||
}
|
||||
if (desc != null) {
|
||||
return desc.method160();
|
||||
}
|
||||
boolean flag = false;
|
||||
for (int i = 0; i < 12; i++) {
|
||||
int j = equipment[i];
|
||||
if (j >= 256 && j < 512 && !IDK.cache[j - 256].method539()) {
|
||||
flag = true;
|
||||
}
|
||||
if (j >= 512 && !ItemDef.forID(j - 512).method192(anInt1702)) {
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (flag) {
|
||||
return null;
|
||||
}
|
||||
Model aclass30_sub2_sub4_sub6s[] = new Model[12];
|
||||
int k = 0;
|
||||
for (int l = 0; l < 12; l++) {
|
||||
int i1 = equipment[l];
|
||||
if (i1 >= 256 && i1 < 512) {
|
||||
Model model_1 = IDK.cache[i1 - 256].method540();
|
||||
if (model_1 != null) {
|
||||
aclass30_sub2_sub4_sub6s[k++] = model_1;
|
||||
}
|
||||
}
|
||||
if (i1 >= 512) {
|
||||
Model model_2 = ItemDef.forID(i1 - 512).method194(anInt1702);
|
||||
if (model_2 != null) {
|
||||
aclass30_sub2_sub4_sub6s[k++] = model_2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Model model = new Model(k, aclass30_sub2_sub4_sub6s);
|
||||
for (int j1 = 0; j1 < 5; j1++) {
|
||||
if (anIntArray1700[j1] != 0) {
|
||||
model.method476(Game.anIntArrayArray1003[j1][0], Game.anIntArrayArray1003[j1][anIntArray1700[j1]]);
|
||||
if (j1 == 1) {
|
||||
model.method476(Game.anIntArray1204[0], Game.anIntArray1204[anIntArray1700[j1]]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
Player() {
|
||||
aLong1697 = -1L;
|
||||
aBoolean1699 = false;
|
||||
anIntArray1700 = new int[5];
|
||||
visible = false;
|
||||
equipment = new int[12];
|
||||
}
|
||||
|
||||
private long aLong1697;
|
||||
public EntityDef desc;
|
||||
boolean aBoolean1699;
|
||||
final int[] anIntArray1700;
|
||||
public int team;
|
||||
private int anInt1702;
|
||||
public String name;
|
||||
static MRUNodes mruNodes = new MRUNodes(260);
|
||||
public int combatLevel;
|
||||
public int headIcon;
|
||||
public int skullIcon;
|
||||
public int hintIcon;
|
||||
public int anInt1707;
|
||||
int anInt1708;
|
||||
int anInt1709;
|
||||
boolean visible;
|
||||
int anInt1711;
|
||||
int anInt1712;
|
||||
int anInt1713;
|
||||
Model aModel_1714;
|
||||
public final int[] equipment;
|
||||
private long aLong1718;
|
||||
int anInt1719;
|
||||
int anInt1720;
|
||||
int anInt1721;
|
||||
int anInt1722;
|
||||
int skill;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,582 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
import javax.swing.*;
|
||||
import java.applet.Applet;
|
||||
import java.awt.*;
|
||||
import java.awt.event.FocusEvent;
|
||||
import java.awt.event.FocusListener;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.KeyListener;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseListener;
|
||||
import java.awt.event.MouseMotionListener;
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.awt.event.WindowListener;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class RSApplet extends Applet implements Runnable, MouseListener, MouseMotionListener, KeyListener, FocusListener, WindowListener {
|
||||
|
||||
public static boolean ctrlDown = false;
|
||||
public static boolean shiftDown = false;
|
||||
private int mouseWheelX = 0;
|
||||
private int mouseWheelY = 0;
|
||||
public static boolean removeShiftDropOnMenuOpen;
|
||||
|
||||
final void createClientFrame(int i, int j) {
|
||||
myWidth = j;
|
||||
myHeight = i;
|
||||
gameFrame = new RSFrame(this, myWidth, myHeight);
|
||||
graphics = getGameComponent().getGraphics();
|
||||
fullGameScreen = new RSImageProducer(myWidth, myHeight, getGameComponent());
|
||||
startRunnable(this, 1);
|
||||
}
|
||||
|
||||
final void initClientFrame(int i, int j) {
|
||||
myWidth = j;
|
||||
myHeight = i;
|
||||
graphics = getGameComponent().getGraphics();
|
||||
fullGameScreen = new RSImageProducer(myWidth, myHeight, getGameComponent());
|
||||
startRunnable(this, 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
getGameComponent().addMouseListener(this);
|
||||
getGameComponent().addMouseMotionListener(this);
|
||||
getGameComponent().addKeyListener(this);
|
||||
getGameComponent().addFocusListener(this);
|
||||
if (gameFrame != null) {
|
||||
gameFrame.addWindowListener(this);
|
||||
}
|
||||
drawLoadingText(0, "Loading...");
|
||||
startUp();
|
||||
int i = 0;
|
||||
int j = 256;
|
||||
int k = 1;
|
||||
int i1 = 0;
|
||||
int j1 = 0;
|
||||
for (int k1 = 0; k1 < 10; k1++) {
|
||||
aLongArray7[k1] = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
System.currentTimeMillis();
|
||||
while (anInt4 >= 0) {
|
||||
if (anInt4 > 0) {
|
||||
anInt4--;
|
||||
if (anInt4 == 0) {
|
||||
exit();
|
||||
return;
|
||||
}
|
||||
}
|
||||
int i2 = j;
|
||||
int j2 = k;
|
||||
j = 300;
|
||||
k = 1;
|
||||
long l1 = System.currentTimeMillis();
|
||||
if (aLongArray7[i] == 0L) {
|
||||
j = i2;
|
||||
k = j2;
|
||||
} else if (l1 > aLongArray7[i]) {
|
||||
j = (int) (2560 * delayTime / (l1 - aLongArray7[i]));
|
||||
}
|
||||
if (j < 25) {
|
||||
j = 25;
|
||||
}
|
||||
if (j > 256) {
|
||||
j = 256;
|
||||
k = (int) (delayTime - (l1 - aLongArray7[i]) / 10L);
|
||||
}
|
||||
if (k > delayTime) {
|
||||
k = delayTime;
|
||||
}
|
||||
aLongArray7[i] = l1;
|
||||
i = (i + 1) % 10;
|
||||
if (k > 1) {
|
||||
for (int k2 = 0; k2 < 10; k2++) {
|
||||
if (aLongArray7[k2] != 0L) {
|
||||
aLongArray7[k2] += k;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (k < minDelay) {
|
||||
k = minDelay;
|
||||
}
|
||||
try {
|
||||
Thread.sleep(k);
|
||||
} catch (InterruptedException _ex) {
|
||||
j1++;
|
||||
}
|
||||
for (; i1 < 256; i1 += j) {
|
||||
clickMode3 = clickMode1;
|
||||
saveClickX = clickX;
|
||||
saveClickY = clickY;
|
||||
aLong29 = clickTime;
|
||||
clickMode1 = 0;
|
||||
processGameLoop();
|
||||
readIndex = writeIndex;
|
||||
}
|
||||
|
||||
i1 &= 0xff;
|
||||
if (delayTime > 0) {
|
||||
fps = 1000 * j / (delayTime * 256);
|
||||
}
|
||||
processDrawing();
|
||||
if (shouldDebug) {
|
||||
System.out.println("ntime:" + l1);
|
||||
for (int l2 = 0; l2 < 10; l2++) {
|
||||
int i3 = (i - l2 - 1 + 20) % 10;
|
||||
System.out.println("otim" + i3 + ":" + aLongArray7[i3]);
|
||||
}
|
||||
|
||||
System.out.println("fps:" + fps + " ratio:" + j + " count:" + i1);
|
||||
System.out.println("del:" + k + " deltime:" + delayTime + " mindel:" + minDelay);
|
||||
System.out.println("intex:" + j1 + " opos:" + i);
|
||||
shouldDebug = false;
|
||||
j1 = 0;
|
||||
}
|
||||
}
|
||||
if (anInt4 == -1) {
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
||||
private void exit() {
|
||||
anInt4 = -2;
|
||||
cleanUpForQuit();
|
||||
if (gameFrame != null) {
|
||||
try {
|
||||
Thread.sleep(1000L);
|
||||
} catch (Exception _ex) {
|
||||
}
|
||||
try {
|
||||
System.exit(0);
|
||||
} catch (Throwable _ex) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final void method4(int i) {
|
||||
delayTime = 1000 / i;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void start() {
|
||||
if (anInt4 >= 0) {
|
||||
anInt4 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void stop() {
|
||||
if (anInt4 >= 0) {
|
||||
anInt4 = 4000 / delayTime;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void destroy() {
|
||||
anInt4 = -1;
|
||||
try {
|
||||
Thread.sleep(5000L);
|
||||
} catch (Exception _ex) {
|
||||
}
|
||||
if (anInt4 == -1) {
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void update(Graphics g) {
|
||||
if (graphics == null) {
|
||||
graphics = g;
|
||||
}
|
||||
shouldClearScreen = true;
|
||||
raiseWelcomeScreen();
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void paint(Graphics g) {
|
||||
if (graphics == null) {
|
||||
graphics = g;
|
||||
}
|
||||
shouldClearScreen = true;
|
||||
raiseWelcomeScreen();
|
||||
}
|
||||
|
||||
public boolean mouseWheelDown;
|
||||
|
||||
@Override
|
||||
public final void mousePressed(MouseEvent mouseevent) {
|
||||
int i = mouseevent.getX();
|
||||
int j = mouseevent.getY();
|
||||
if (gameFrame != null) {
|
||||
i -= 4;
|
||||
j -= 22;
|
||||
}
|
||||
idleTime = 0;
|
||||
clickX = i;
|
||||
clickY = j;
|
||||
clickTime = System.currentTimeMillis();
|
||||
if (mouseevent.getButton() == MouseEvent.BUTTON2) {
|
||||
mouseWheelDown = true;
|
||||
mouseWheelX = mouseevent.getX();
|
||||
mouseWheelY = mouseevent.getY();
|
||||
return;
|
||||
}
|
||||
|
||||
if (mouseevent.getButton() == MouseEvent.BUTTON3) {
|
||||
clickMode1 = 2;
|
||||
clickMode2 = 2;
|
||||
} else {
|
||||
clickMode1 = 1;
|
||||
clickMode2 = 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void mouseReleased(MouseEvent mouseevent) {
|
||||
idleTime = 0;
|
||||
clickMode2 = 0;
|
||||
mouseWheelDown = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void mouseClicked(MouseEvent mouseevent) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void mouseEntered(MouseEvent mouseevent) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void mouseExited(MouseEvent mouseevent) {
|
||||
idleTime = 0;
|
||||
mouseX = -1;
|
||||
mouseY = -1;
|
||||
}
|
||||
|
||||
public final void mouseDragged(MouseEvent e) {
|
||||
int x = e.getX();
|
||||
int y = e.getY();
|
||||
if(gameFrame != null) {
|
||||
Insets insets = gameFrame.getInsets();
|
||||
x -= insets.left;//4
|
||||
y -= insets.top;//22
|
||||
}
|
||||
if (mouseWheelDown) {
|
||||
y = mouseWheelX - e.getX();
|
||||
int k = mouseWheelY - e.getY();
|
||||
mouseWheelDragged(y, -k);
|
||||
mouseWheelX = e.getX();
|
||||
mouseWheelY = e.getY();
|
||||
return;
|
||||
}
|
||||
idleTime = 0;
|
||||
mouseX = x;
|
||||
mouseY = y;
|
||||
}
|
||||
void mouseWheelDragged(int param1, int param2) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseMoved(MouseEvent mouseevent) {
|
||||
int i = mouseevent.getX();
|
||||
int j = mouseevent.getY();
|
||||
if (gameFrame != null) {
|
||||
i -= 4;
|
||||
j -= 22;
|
||||
}
|
||||
idleTime = 0;
|
||||
mouseX = i;
|
||||
mouseY = j;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void keyPressed(KeyEvent keyevent) {
|
||||
idleTime = 0;
|
||||
int i = keyevent.getKeyCode();
|
||||
int j = keyevent.getKeyChar();
|
||||
switch (keyevent.getKeyCode())
|
||||
{
|
||||
case KeyEvent.VK_SHIFT:
|
||||
shiftDown = true;
|
||||
break;
|
||||
case KeyEvent.VK_CONTROL:
|
||||
ctrlDown = true;
|
||||
break;
|
||||
}
|
||||
if (j < 30) {
|
||||
j = 0;
|
||||
}
|
||||
if (i == 37) {
|
||||
j = 1;
|
||||
}
|
||||
if (i == 39) {
|
||||
j = 2;
|
||||
}
|
||||
if (i == 38) {
|
||||
j = 3;
|
||||
}
|
||||
if (i == 40) {
|
||||
j = 4;
|
||||
}
|
||||
if (i == 17) {
|
||||
j = 5;
|
||||
}
|
||||
if (i == 8) {
|
||||
j = 8;
|
||||
}
|
||||
if (i == 127) {
|
||||
j = 8;
|
||||
}
|
||||
if (i == 9) {
|
||||
j = 9;
|
||||
}
|
||||
if (i == 10) {
|
||||
j = 10;
|
||||
}
|
||||
if (i >= 112 && i <= 123) {
|
||||
j = 1008 + i - 112;
|
||||
}
|
||||
if (i == 36) {
|
||||
j = 1000;
|
||||
}
|
||||
if (i == 35) {
|
||||
j = 1001;
|
||||
}
|
||||
if (i == 33) {
|
||||
j = 1002;
|
||||
}
|
||||
if (i == 34) {
|
||||
j = 1003;
|
||||
}
|
||||
if (j > 0 && j < 128) {
|
||||
keyArray[j] = 1;
|
||||
}
|
||||
if (j > 4) {
|
||||
charQueue[writeIndex] = j;
|
||||
writeIndex = writeIndex + 1 & 0x7f;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void keyReleased(KeyEvent keyevent) {
|
||||
idleTime = 0;
|
||||
int i = keyevent.getKeyCode();
|
||||
char c = keyevent.getKeyChar();
|
||||
switch (keyevent.getKeyCode())
|
||||
{
|
||||
case KeyEvent.VK_SHIFT:
|
||||
shiftDown = false;
|
||||
break;
|
||||
case KeyEvent.VK_CONTROL:
|
||||
ctrlDown = false;
|
||||
break;
|
||||
}
|
||||
if (c < '\036') {
|
||||
c = '\0';
|
||||
}
|
||||
if (i == 37) {
|
||||
c = '\001';
|
||||
}
|
||||
if (i == 39) {
|
||||
c = '\002';
|
||||
}
|
||||
if (i == 38) {
|
||||
c = '\003';
|
||||
}
|
||||
if (i == 40) {
|
||||
c = '\004';
|
||||
}
|
||||
if (i == 17) {
|
||||
c = '\005';
|
||||
}
|
||||
if (i == 8) {
|
||||
c = '\b';
|
||||
}
|
||||
if (i == 127) {
|
||||
c = '\b';
|
||||
}
|
||||
if (i == 9) {
|
||||
c = '\t';
|
||||
}
|
||||
if (i == 10) {
|
||||
c = '\n';
|
||||
}
|
||||
if (c > 0 && c < '\200') {
|
||||
keyArray[c] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void keyTyped(KeyEvent keyevent) {
|
||||
}
|
||||
|
||||
final int readChar(int dummy) {
|
||||
while (dummy >= 0) {
|
||||
for (int j = 1; j > 0; j++) {
|
||||
;
|
||||
}
|
||||
}
|
||||
int k = -1;
|
||||
if (writeIndex != readIndex) {
|
||||
k = charQueue[readIndex];
|
||||
readIndex = readIndex + 1 & 0x7f;
|
||||
}
|
||||
return k;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void focusGained(FocusEvent focusevent) {
|
||||
awtFocus = true;
|
||||
shouldClearScreen = true;
|
||||
raiseWelcomeScreen();
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void focusLost(FocusEvent focusevent) {
|
||||
awtFocus = false;
|
||||
for (int i = 0; i < 128; i++) {
|
||||
keyArray[i] = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void windowActivated(WindowEvent windowevent) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void windowClosed(WindowEvent windowevent) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void windowClosing(WindowEvent windowevent) {
|
||||
destroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void windowDeactivated(WindowEvent windowevent) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void windowDeiconified(WindowEvent windowevent) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void windowIconified(WindowEvent windowevent) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void windowOpened(WindowEvent windowevent) {
|
||||
}
|
||||
|
||||
void startUp() {
|
||||
}
|
||||
|
||||
void processGameLoop() {
|
||||
}
|
||||
|
||||
void cleanUpForQuit() {
|
||||
}
|
||||
|
||||
void processDrawing() {
|
||||
}
|
||||
|
||||
void raiseWelcomeScreen() {
|
||||
}
|
||||
|
||||
Component getGameComponent() {
|
||||
if (gameFrame != null) {
|
||||
return gameFrame;
|
||||
} else {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public void startRunnable(Runnable runnable, int priority) {
|
||||
Thread thread = new Thread(runnable);
|
||||
thread.start();
|
||||
thread.setPriority(priority);
|
||||
}
|
||||
|
||||
void drawLoadingText(int i, String s) {
|
||||
while (graphics == null) {
|
||||
graphics = getGameComponent().getGraphics();
|
||||
try {
|
||||
getGameComponent().repaint();
|
||||
} catch (Exception _ex) {
|
||||
}
|
||||
try {
|
||||
Thread.sleep(1000L);
|
||||
} catch (Exception _ex) {
|
||||
}
|
||||
}
|
||||
Font font = new Font("Helvetica", 1, 13);
|
||||
FontMetrics fontmetrics = getGameComponent().getFontMetrics(font);
|
||||
Font font1 = new Font("Helvetica", 0, 13);
|
||||
getGameComponent().getFontMetrics(font1);
|
||||
if (shouldClearScreen) {
|
||||
graphics.setColor(Color.black);
|
||||
graphics.fillRect(0, 0, myWidth, myHeight);
|
||||
shouldClearScreen = false;
|
||||
}
|
||||
Color color = new Color(140, 17, 17);
|
||||
int j = myHeight / 2 - 18;
|
||||
graphics.setColor(color);
|
||||
graphics.drawRect(myWidth / 2 - 152, j, 304, 34);
|
||||
graphics.fillRect(myWidth / 2 - 150, j + 2, i * 3, 30);
|
||||
graphics.setColor(Color.black);
|
||||
graphics.fillRect(myWidth / 2 - 150 + i * 3, j + 2, 300 - i * 3, 30);
|
||||
graphics.setFont(font);
|
||||
graphics.setColor(Color.white);
|
||||
graphics.drawString(s, (myWidth - fontmetrics.stringWidth(s)) / 2, j + 22);
|
||||
}
|
||||
|
||||
RSApplet() {
|
||||
delayTime = 20;
|
||||
minDelay = 1;
|
||||
aLongArray7 = new long[10];
|
||||
shouldDebug = false;
|
||||
shouldClearScreen = true;
|
||||
awtFocus = true;
|
||||
keyArray = new int[128];
|
||||
charQueue = new int[128];
|
||||
}
|
||||
|
||||
private int anInt4;
|
||||
private int delayTime;
|
||||
int minDelay;
|
||||
private final long[] aLongArray7;
|
||||
int fps;
|
||||
boolean shouldDebug;
|
||||
int myWidth;
|
||||
int myHeight;
|
||||
Graphics graphics;
|
||||
RSImageProducer fullGameScreen;
|
||||
RSFrame gameFrame;
|
||||
private boolean shouldClearScreen;
|
||||
boolean awtFocus;
|
||||
int idleTime;
|
||||
int clickMode2;
|
||||
public int mouseX;
|
||||
public int mouseY;
|
||||
private int clickMode1;
|
||||
private int clickX;
|
||||
private int clickY;
|
||||
private long clickTime;
|
||||
int clickMode3;
|
||||
int saveClickX;
|
||||
int saveClickY;
|
||||
long aLong29;
|
||||
final int[] keyArray;
|
||||
private final int[] charQueue;
|
||||
private int readIndex;
|
||||
private int writeIndex;
|
||||
public static int anInt34;
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
final class RSFrame extends Frame {
|
||||
|
||||
public RSFrame(RSApplet RSApplet_, int i, int j) {
|
||||
rsApplet = RSApplet_;
|
||||
setTitle(ClientSettings.SERVER_NAME);
|
||||
setResizable(false);
|
||||
setMinimumSize(new Dimension(i + 8, j + 28));
|
||||
setVisible(true);
|
||||
toFront();
|
||||
setSize(i + 8, j + 28);
|
||||
setLocationRelativeTo(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Graphics getGraphics() {
|
||||
Graphics g = super.getGraphics();
|
||||
g.translate(4, 24);
|
||||
return g;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(Graphics g) {
|
||||
rsApplet.update(g);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void paint(Graphics g) {
|
||||
rsApplet.paint(g);
|
||||
}
|
||||
|
||||
private final RSApplet rsApplet;
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
import java.awt.Component;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Image;
|
||||
import java.awt.image.ColorModel;
|
||||
import java.awt.image.DirectColorModel;
|
||||
import java.awt.image.ImageConsumer;
|
||||
import java.awt.image.ImageObserver;
|
||||
import java.awt.image.ImageProducer;
|
||||
|
||||
final class RSImageProducer implements ImageProducer, ImageObserver {
|
||||
|
||||
public RSImageProducer(int i, int j, Component component) {
|
||||
anInt316 = i;
|
||||
anInt317 = j;
|
||||
anIntArray315 = new int[i * j];
|
||||
aColorModel318 = new DirectColorModel(32, 0xff0000, 65280, 255);
|
||||
anImage320 = component.createImage(this);
|
||||
method239();
|
||||
component.prepareImage(anImage320, this);
|
||||
method239();
|
||||
component.prepareImage(anImage320, this);
|
||||
method239();
|
||||
component.prepareImage(anImage320, this);
|
||||
initDrawingArea();
|
||||
}
|
||||
|
||||
public void initDrawingArea() {
|
||||
DrawingArea.initDrawingArea(anInt317, anInt316, anIntArray315);
|
||||
}
|
||||
|
||||
public void drawGraphics(int i, Graphics g, int k) {
|
||||
method239();
|
||||
g.drawImage(anImage320, k, i, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void addConsumer(ImageConsumer imageconsumer) {
|
||||
anImageConsumer319 = imageconsumer;
|
||||
imageconsumer.setDimensions(anInt316, anInt317);
|
||||
imageconsumer.setProperties(null);
|
||||
imageconsumer.setColorModel(aColorModel318);
|
||||
imageconsumer.setHints(14);
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized boolean isConsumer(ImageConsumer imageconsumer) {
|
||||
return anImageConsumer319 == imageconsumer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void removeConsumer(ImageConsumer imageconsumer) {
|
||||
if (anImageConsumer319 == imageconsumer) {
|
||||
anImageConsumer319 = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startProduction(ImageConsumer imageconsumer) {
|
||||
addConsumer(imageconsumer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void requestTopDownLeftRightResend(ImageConsumer imageconsumer) {
|
||||
System.out.println("TDLR");
|
||||
}
|
||||
|
||||
private synchronized void method239() {
|
||||
if (anImageConsumer319 != null) {
|
||||
anImageConsumer319.setPixels(0, 0, anInt316, anInt317, aColorModel318, anIntArray315, 0, anInt316);
|
||||
anImageConsumer319.imageComplete(2);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean imageUpdate(Image image, int i, int j, int k, int l, int i1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public final int[] anIntArray315;
|
||||
private final int anInt316;
|
||||
private final int anInt317;
|
||||
private final ColorModel aColorModel318;
|
||||
private ImageConsumer anImageConsumer319;
|
||||
private final Image anImage320;
|
||||
}
|
||||
@@ -0,0 +1,391 @@
|
||||
public final class RSInterface {
|
||||
|
||||
public void swapInventoryItems(int i, int j) {
|
||||
int k = inv[i];
|
||||
inv[i] = inv[j];
|
||||
inv[j] = k;
|
||||
k = invStackSizes[i];
|
||||
invStackSizes[i] = invStackSizes[j];
|
||||
invStackSizes[j] = k;
|
||||
}
|
||||
|
||||
public static void unpack(StreamLoader streamLoader, TextDrawingArea textDrawingAreas[], StreamLoader streamLoader_1) {
|
||||
aMRUNodes_238 = new MRUNodes(50000);
|
||||
Stream stream = new Stream(streamLoader.getDataForName("data"));
|
||||
int i = -1;
|
||||
int j = stream.readUnsignedWord();
|
||||
interfaceCache = new RSInterface[j];
|
||||
while (stream.currentOffset < stream.buffer.length) {
|
||||
int k = stream.readUnsignedWord();
|
||||
if (k == 65535) {
|
||||
i = stream.readUnsignedWord();
|
||||
k = stream.readUnsignedWord();
|
||||
}
|
||||
RSInterface rsInterface = interfaceCache[k] = new RSInterface();
|
||||
rsInterface.id = k;
|
||||
rsInterface.parentID = i;
|
||||
rsInterface.type = stream.readUnsignedByte();
|
||||
//if(rsInterface.type == 0)
|
||||
// System.out.println(rsInterface.parentID+":"+k);
|
||||
rsInterface.atActionType = stream.readUnsignedByte();
|
||||
rsInterface.anInt214 = stream.readUnsignedWord();
|
||||
rsInterface.width = stream.readUnsignedWord();
|
||||
rsInterface.height = stream.readUnsignedWord();
|
||||
rsInterface.aByte254 = (byte) stream.readUnsignedByte();
|
||||
rsInterface.anInt230 = stream.readUnsignedByte();
|
||||
if (rsInterface.anInt230 != 0) {
|
||||
rsInterface.anInt230 = (rsInterface.anInt230 - 1 << 8) + stream.readUnsignedByte();
|
||||
} else {
|
||||
rsInterface.anInt230 = -1;
|
||||
}
|
||||
int i1 = stream.readUnsignedByte();
|
||||
if (i1 > 0) {
|
||||
rsInterface.anIntArray245 = new int[i1];
|
||||
rsInterface.anIntArray212 = new int[i1];
|
||||
for (int j1 = 0; j1 < i1; j1++) {
|
||||
rsInterface.anIntArray245[j1] = stream.readUnsignedByte();
|
||||
rsInterface.anIntArray212[j1] = stream.readUnsignedWord();
|
||||
}
|
||||
|
||||
}
|
||||
int k1 = stream.readUnsignedByte();
|
||||
if (k1 > 0) {
|
||||
rsInterface.valueIndexArray = new int[k1][];
|
||||
for (int l1 = 0; l1 < k1; l1++) {
|
||||
int i3 = stream.readUnsignedWord();
|
||||
rsInterface.valueIndexArray[l1] = new int[i3];
|
||||
for (int l4 = 0; l4 < i3; l4++) {
|
||||
rsInterface.valueIndexArray[l1][l4] = stream.readUnsignedWord();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
if (rsInterface.type == 0) {
|
||||
rsInterface.scrollMax = stream.readUnsignedWord();
|
||||
rsInterface.aBoolean266 = stream.readUnsignedByte() == 1;
|
||||
int i2 = stream.readUnsignedWord();
|
||||
rsInterface.children = new int[i2];
|
||||
rsInterface.childX = new int[i2];
|
||||
rsInterface.childY = new int[i2];
|
||||
for (int j3 = 0; j3 < i2; j3++) {
|
||||
rsInterface.children[j3] = stream.readUnsignedWord();
|
||||
rsInterface.childX[j3] = stream.readSignedWord();
|
||||
rsInterface.childY[j3] = stream.readSignedWord();
|
||||
}
|
||||
|
||||
}
|
||||
if (rsInterface.type == 1) {
|
||||
stream.readUnsignedWord();
|
||||
stream.readUnsignedByte();
|
||||
}
|
||||
if (rsInterface.type == 2) {
|
||||
rsInterface.inv = new int[rsInterface.width * rsInterface.height];
|
||||
rsInterface.invStackSizes = new int[rsInterface.width * rsInterface.height];
|
||||
rsInterface.aBoolean259 = stream.readUnsignedByte() == 1;
|
||||
rsInterface.isInventoryInterface = stream.readUnsignedByte() == 1;
|
||||
rsInterface.usableItemInterface = stream.readUnsignedByte() == 1;
|
||||
rsInterface.aBoolean235 = stream.readUnsignedByte() == 1;
|
||||
rsInterface.invSpritePadX = stream.readUnsignedByte();
|
||||
rsInterface.invSpritePadY = stream.readUnsignedByte();
|
||||
rsInterface.spritesX = new int[20];
|
||||
rsInterface.spritesY = new int[20];
|
||||
rsInterface.sprites = new Sprite[20];
|
||||
for (int j2 = 0; j2 < 20; j2++) {
|
||||
int k3 = stream.readUnsignedByte();
|
||||
if (k3 == 1) {
|
||||
rsInterface.spritesX[j2] = stream.readSignedWord();
|
||||
rsInterface.spritesY[j2] = stream.readSignedWord();
|
||||
String s1 = stream.readString();
|
||||
if (streamLoader_1 != null && s1.length() > 0) {
|
||||
int i5 = s1.lastIndexOf(",");
|
||||
rsInterface.sprites[j2] = method207(Integer.parseInt(s1.substring(i5 + 1)), streamLoader_1, s1.substring(0, i5));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rsInterface.actions = new String[5];
|
||||
for (int l3 = 0; l3 < 5; l3++) {
|
||||
rsInterface.actions[l3] = stream.readString();
|
||||
if (rsInterface.actions[l3].length() == 0) {
|
||||
rsInterface.actions[l3] = null;
|
||||
}
|
||||
}
|
||||
if(rsInterface.parentID == 3822) {
|
||||
rsInterface.actions[2] = "Sell 10";
|
||||
rsInterface.actions[3] = "Sell X";
|
||||
}
|
||||
if(rsInterface.id == 3900) {
|
||||
rsInterface.actions[2] = "Buy 10";
|
||||
rsInterface.actions[3] = "Buy X";
|
||||
}
|
||||
}
|
||||
if (rsInterface.type == 3) {
|
||||
rsInterface.aBoolean227 = stream.readUnsignedByte() == 1;
|
||||
}
|
||||
if (rsInterface.type == 4 || rsInterface.type == 1) {
|
||||
rsInterface.aBoolean223 = stream.readUnsignedByte() == 1;
|
||||
int k2 = stream.readUnsignedByte();
|
||||
if (textDrawingAreas != null) {
|
||||
rsInterface.textDrawingAreas = textDrawingAreas[k2];
|
||||
}
|
||||
rsInterface.aBoolean268 = stream.readUnsignedByte() == 1;
|
||||
}
|
||||
if (rsInterface.type == 4) {
|
||||
rsInterface.disabledText = stream.readString().replaceAll("RuneScape", ClientSettings.SERVER_NAME);
|
||||
rsInterface.enabledText = stream.readString();
|
||||
}
|
||||
if (rsInterface.type == 1 || rsInterface.type == 3 || rsInterface.type == 4) {
|
||||
rsInterface.textColor = stream.readDWord();
|
||||
}
|
||||
if (rsInterface.type == 3 || rsInterface.type == 4) {
|
||||
rsInterface.anInt219 = stream.readDWord();
|
||||
rsInterface.anInt216 = stream.readDWord();
|
||||
rsInterface.anInt239 = stream.readDWord();
|
||||
}
|
||||
if (rsInterface.type == 5) {
|
||||
String s = stream.readString();
|
||||
if (streamLoader_1 != null && s.length() > 0) {
|
||||
int i4 = s.lastIndexOf(",");
|
||||
rsInterface.sprite1 = method207(Integer.parseInt(s.substring(i4 + 1)), streamLoader_1, s.substring(0, i4));
|
||||
}
|
||||
s = stream.readString();
|
||||
if (streamLoader_1 != null && s.length() > 0) {
|
||||
int j4 = s.lastIndexOf(",");
|
||||
rsInterface.sprite2 = method207(Integer.parseInt(s.substring(j4 + 1)), streamLoader_1, s.substring(0, j4));
|
||||
}
|
||||
}
|
||||
if (rsInterface.type == 6) {
|
||||
int l = stream.readUnsignedByte();
|
||||
if (l != 0) {
|
||||
rsInterface.anInt233 = 1;
|
||||
rsInterface.mediaID = (l - 1 << 8) + stream.readUnsignedByte();
|
||||
}
|
||||
l = stream.readUnsignedByte();
|
||||
if (l != 0) {
|
||||
rsInterface.anInt255 = 1;
|
||||
rsInterface.anInt256 = (l - 1 << 8) + stream.readUnsignedByte();
|
||||
}
|
||||
l = stream.readUnsignedByte();
|
||||
if (l != 0) {
|
||||
rsInterface.anInt257 = (l - 1 << 8) + stream.readUnsignedByte();
|
||||
} else {
|
||||
rsInterface.anInt257 = -1;
|
||||
}
|
||||
l = stream.readUnsignedByte();
|
||||
if (l != 0) {
|
||||
rsInterface.anInt258 = (l - 1 << 8) + stream.readUnsignedByte();
|
||||
} else {
|
||||
rsInterface.anInt258 = -1;
|
||||
}
|
||||
rsInterface.anInt269 = stream.readUnsignedWord();
|
||||
rsInterface.anInt270 = stream.readUnsignedWord();
|
||||
rsInterface.anInt271 = stream.readUnsignedWord();
|
||||
}
|
||||
if (rsInterface.type == 7) {
|
||||
rsInterface.inv = new int[rsInterface.width * rsInterface.height];
|
||||
rsInterface.invStackSizes = new int[rsInterface.width * rsInterface.height];
|
||||
rsInterface.aBoolean223 = stream.readUnsignedByte() == 1;
|
||||
int l2 = stream.readUnsignedByte();
|
||||
if (textDrawingAreas != null) {
|
||||
rsInterface.textDrawingAreas = textDrawingAreas[l2];
|
||||
}
|
||||
rsInterface.aBoolean268 = stream.readUnsignedByte() == 1;
|
||||
rsInterface.textColor = stream.readDWord();
|
||||
rsInterface.invSpritePadX = stream.readSignedWord();
|
||||
rsInterface.invSpritePadY = stream.readSignedWord();
|
||||
rsInterface.isInventoryInterface = stream.readUnsignedByte() == 1;
|
||||
rsInterface.actions = new String[5];
|
||||
for (int k4 = 0; k4 < 5; k4++) {
|
||||
rsInterface.actions[k4] = stream.readString();
|
||||
if (rsInterface.actions[k4].length() == 0) {
|
||||
rsInterface.actions[k4] = null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (rsInterface.atActionType == 2 || rsInterface.type == 2) {
|
||||
rsInterface.selectedActionName = stream.readString();
|
||||
rsInterface.spellName = stream.readString();
|
||||
rsInterface.spellUsableOn = stream.readUnsignedWord();
|
||||
}
|
||||
if (rsInterface.type == 8) {
|
||||
rsInterface.disabledText = stream.readString();
|
||||
}
|
||||
if (rsInterface.atActionType == 1 || rsInterface.atActionType == 4 || rsInterface.atActionType == 5 || rsInterface.atActionType == 6) {
|
||||
rsInterface.tooltip = stream.readString();
|
||||
if (rsInterface.tooltip.length() == 0) {
|
||||
if (rsInterface.atActionType == 1) {
|
||||
rsInterface.tooltip = "Ok";
|
||||
}
|
||||
if (rsInterface.atActionType == 4) {
|
||||
rsInterface.tooltip = "Select";
|
||||
}
|
||||
if (rsInterface.atActionType == 5) {
|
||||
rsInterface.tooltip = "Select";
|
||||
}
|
||||
if (rsInterface.atActionType == 6) {
|
||||
rsInterface.tooltip = "Continue";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
aMRUNodes_238 = null;
|
||||
}
|
||||
|
||||
private Model method206(int i, int j) {
|
||||
ItemDef itemDefinition = null;
|
||||
if (type == 4) {
|
||||
itemDefinition = ItemDef.forID(id);
|
||||
lightness += itemDefinition.anInt196;
|
||||
shading += itemDefinition.anInt184;
|
||||
}
|
||||
Model model = (Model) aMRUNodes_264.insertFromCache((i << 16) + j);
|
||||
if (model != null)
|
||||
return model;
|
||||
if (i == 1)
|
||||
model = Model.method462(j);
|
||||
if (i == 2)
|
||||
model = EntityDef.forID(j).method160();
|
||||
if (i == 3)
|
||||
model = Game.myPlayer.method453();
|
||||
if (i == 4)
|
||||
model = ItemDef.forID(j).method202(50);
|
||||
if (i == 5)
|
||||
model = null;
|
||||
if (model != null)
|
||||
aMRUNodes_264.removeFromCache(model, (i << 16) + j);
|
||||
return model;
|
||||
}
|
||||
|
||||
private static Sprite method207(int i, StreamLoader streamLoader, String s) {
|
||||
long l = (TextClass.method585(s) << 8) + i;
|
||||
Sprite sprite = (Sprite) aMRUNodes_238.insertFromCache(l);
|
||||
if (sprite != null) {
|
||||
return sprite;
|
||||
}
|
||||
try {
|
||||
sprite = new Sprite(streamLoader, s, i);
|
||||
aMRUNodes_238.removeFromCache(sprite, l);
|
||||
} catch (Exception _ex) {
|
||||
return null;
|
||||
}
|
||||
return sprite;
|
||||
}
|
||||
|
||||
public static void discardInterface(int i) {
|
||||
if (i == -1)
|
||||
return;
|
||||
for (int j = 0; j < interfaceCache.length; j++)
|
||||
if (interfaceCache[j] != null
|
||||
&& interfaceCache[j].parentID == i
|
||||
&& interfaceCache[j].type != 2)
|
||||
interfaceCache[j] = null;
|
||||
|
||||
}
|
||||
|
||||
public static void method208(Model model, int id, int type) {
|
||||
aMRUNodes_264.unlinkAll();
|
||||
if (model != null && type != 4) {
|
||||
aMRUNodes_264.removeFromCache(model, (type << 16) + id);
|
||||
}
|
||||
}
|
||||
|
||||
public Model method209(int j, int k, boolean flag) {
|
||||
lightness = 64;
|
||||
shading = 768;
|
||||
Model model;
|
||||
if (flag) {
|
||||
model = method206(anInt255, anInt256);
|
||||
} else {
|
||||
model = method206(anInt233, mediaID);
|
||||
}
|
||||
if (model == null) {
|
||||
return null;
|
||||
}
|
||||
if (k == -1 && j == -1 && model.anIntArray1640 == null) {
|
||||
return model;
|
||||
}
|
||||
Model model_1 = new Model(true, Class36.method532(k) & Class36.method532(j), false, model);
|
||||
if (k != -1 || j != -1) {
|
||||
model_1.method469();
|
||||
}
|
||||
if (k != -1) {
|
||||
model_1.method470(k);
|
||||
}
|
||||
if (j != -1) {
|
||||
model_1.method470(j);
|
||||
}
|
||||
model_1.method479(lightness, shading, -50, -10, -50, true);
|
||||
return model_1;
|
||||
}
|
||||
|
||||
public RSInterface() {
|
||||
}
|
||||
|
||||
public Sprite sprite1;
|
||||
public int anInt208;
|
||||
public Sprite sprites[];
|
||||
public static RSInterface interfaceCache[];
|
||||
public int anIntArray212[];
|
||||
public int anInt214;
|
||||
public int spritesX[];
|
||||
public int anInt216;
|
||||
public int atActionType;
|
||||
public String spellName;
|
||||
public int anInt219;
|
||||
public int width;
|
||||
public String tooltip;
|
||||
public String selectedActionName;
|
||||
public boolean aBoolean223;
|
||||
public int scrollPosition;
|
||||
public String actions[];
|
||||
public int valueIndexArray[][];
|
||||
public boolean aBoolean227;
|
||||
public String enabledText;
|
||||
public int anInt230;
|
||||
public int invSpritePadX;
|
||||
public int textColor;
|
||||
public int anInt233;
|
||||
public int mediaID;
|
||||
public boolean aBoolean235;
|
||||
public int parentID;
|
||||
public int spellUsableOn;
|
||||
private static MRUNodes aMRUNodes_238;
|
||||
public int anInt239;
|
||||
public int children[];
|
||||
public int childX[];
|
||||
public boolean usableItemInterface;
|
||||
public TextDrawingArea textDrawingAreas;
|
||||
public int invSpritePadY;
|
||||
public int anIntArray245[];
|
||||
public int anInt246;
|
||||
public int spritesY[];
|
||||
public String disabledText;
|
||||
public boolean isInventoryInterface;
|
||||
public int id;
|
||||
public int invStackSizes[];
|
||||
public int inv[];
|
||||
public byte aByte254;
|
||||
private int anInt255;
|
||||
private int anInt256;
|
||||
public int anInt257;
|
||||
public int anInt258;
|
||||
public boolean aBoolean259;
|
||||
public Sprite sprite2;
|
||||
public int scrollMax;
|
||||
public int type;
|
||||
public int anInt263;
|
||||
private static final MRUNodes aMRUNodes_264 = new MRUNodes(30);
|
||||
public int anInt265;
|
||||
public boolean aBoolean266;
|
||||
public int height;
|
||||
public static int shading;
|
||||
public static int lightness;
|
||||
public boolean aBoolean268;
|
||||
public int anInt269;
|
||||
public int anInt270;
|
||||
public int anInt271;
|
||||
public int childY[];
|
||||
|
||||
}
|
||||
@@ -0,0 +1,168 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.Socket;
|
||||
|
||||
final class RSSocket implements Runnable {
|
||||
|
||||
public RSSocket(RSApplet RSApplet_, Socket socket1) throws IOException {
|
||||
closed = false;
|
||||
isWriter = false;
|
||||
hasIOError = false;
|
||||
rsApplet = RSApplet_;
|
||||
socket = socket1;
|
||||
socket.setSoTimeout(30000);
|
||||
socket.setTcpNoDelay(true);
|
||||
inputStream = socket.getInputStream();
|
||||
outputStream = socket.getOutputStream();
|
||||
}
|
||||
|
||||
public void close() {
|
||||
closed = true;
|
||||
try {
|
||||
if (inputStream != null) {
|
||||
inputStream.close();
|
||||
}
|
||||
if (outputStream != null) {
|
||||
outputStream.close();
|
||||
}
|
||||
if (socket != null) {
|
||||
socket.close();
|
||||
}
|
||||
} catch (IOException _ex) {
|
||||
System.out.println("Error closing stream");
|
||||
}
|
||||
isWriter = false;
|
||||
synchronized (this) {
|
||||
notify();
|
||||
}
|
||||
buffer = null;
|
||||
}
|
||||
|
||||
public int read() throws IOException {
|
||||
if (closed) {
|
||||
return 0;
|
||||
} else {
|
||||
return inputStream.read();
|
||||
}
|
||||
}
|
||||
|
||||
public int available() throws IOException {
|
||||
if (closed) {
|
||||
return 0;
|
||||
} else {
|
||||
return inputStream.available();
|
||||
}
|
||||
}
|
||||
|
||||
public void flushInputStream(byte abyte0[], int j) throws IOException {
|
||||
int i = 0;// was parameter
|
||||
if (closed) {
|
||||
return;
|
||||
}
|
||||
int k;
|
||||
for (; j > 0; j -= k) {
|
||||
k = inputStream.read(abyte0, i, j);
|
||||
if (k <= 0) {
|
||||
throw new IOException("EOF");
|
||||
}
|
||||
i += k;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void queueBytes(int i, byte abyte0[]) throws IOException {
|
||||
if (closed) {
|
||||
return;
|
||||
}
|
||||
if (hasIOError) {
|
||||
hasIOError = false;
|
||||
throw new IOException("Error in writer thread");
|
||||
}
|
||||
if (buffer == null) {
|
||||
buffer = new byte[5000];
|
||||
}
|
||||
synchronized (this) {
|
||||
for (int l = 0; l < i; l++) {
|
||||
buffer[buffIndex] = abyte0[l];
|
||||
buffIndex = (buffIndex + 1) % 5000;
|
||||
if (buffIndex == (writeIndex + 4900) % 5000) {
|
||||
throw new IOException("buffer overflow");
|
||||
}
|
||||
}
|
||||
|
||||
if (!isWriter) {
|
||||
isWriter = true;
|
||||
rsApplet.startRunnable(this, 3);
|
||||
}
|
||||
notify();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
while (isWriter) {
|
||||
int i;
|
||||
int j;
|
||||
synchronized (this) {
|
||||
if (buffIndex == writeIndex) {
|
||||
try {
|
||||
wait();
|
||||
} catch (InterruptedException _ex) {
|
||||
}
|
||||
}
|
||||
if (!isWriter) {
|
||||
return;
|
||||
}
|
||||
j = writeIndex;
|
||||
if (buffIndex >= writeIndex) {
|
||||
i = buffIndex - writeIndex;
|
||||
} else {
|
||||
i = 5000 - writeIndex;
|
||||
}
|
||||
}
|
||||
if (i > 0) {
|
||||
try {
|
||||
outputStream.write(buffer, j, i);
|
||||
} catch (IOException _ex) {
|
||||
hasIOError = true;
|
||||
}
|
||||
writeIndex = (writeIndex + i) % 5000;
|
||||
try {
|
||||
if (buffIndex == writeIndex) {
|
||||
outputStream.flush();
|
||||
}
|
||||
} catch (IOException _ex) {
|
||||
hasIOError = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void printDebug() {
|
||||
System.out.println("dummy:" + closed);
|
||||
System.out.println("tcycl:" + writeIndex);
|
||||
System.out.println("tnum:" + buffIndex);
|
||||
System.out.println("writer:" + isWriter);
|
||||
System.out.println("ioerror:" + hasIOError);
|
||||
try {
|
||||
System.out.println("available:" + available());
|
||||
} catch (IOException _ex) {
|
||||
}
|
||||
}
|
||||
|
||||
private InputStream inputStream;
|
||||
private OutputStream outputStream;
|
||||
private final Socket socket;
|
||||
private boolean closed;
|
||||
private final RSApplet rsApplet;
|
||||
private byte[] buffer;
|
||||
private int writeIndex;
|
||||
private int buffIndex;
|
||||
private boolean isWriter;
|
||||
private boolean hasIOError;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
/* Runnable_Impl1 - Decompiled by JODE
|
||||
* Visit http://jode.sourceforge.net/
|
||||
*/
|
||||
|
||||
public interface Runnable_Impl1 extends Runnable
|
||||
{
|
||||
public void method10(int[] is, int i);
|
||||
|
||||
public void method11(boolean bool);
|
||||
|
||||
public void method12(boolean bool);
|
||||
|
||||
public void close();
|
||||
|
||||
public int method14(int i);
|
||||
|
||||
public void method15(byte i);
|
||||
}
|
||||
@@ -0,0 +1,420 @@
|
||||
import java.applet.Applet;
|
||||
import java.io.DataInputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.RandomAccessFile;
|
||||
import java.net.InetAddress;
|
||||
import java.net.Socket;
|
||||
import java.net.URL;
|
||||
|
||||
import javax.sound.midi.MidiChannel;
|
||||
import javax.sound.midi.MidiSystem;
|
||||
import javax.sound.midi.Sequence;
|
||||
import javax.sound.midi.Sequencer;
|
||||
import javax.sound.midi.ShortMessage;
|
||||
import javax.sound.midi.Synthesizer;
|
||||
import javax.sound.sampled.AudioFormat;
|
||||
import javax.sound.sampled.AudioInputStream;
|
||||
import javax.sound.sampled.AudioSystem;
|
||||
import javax.sound.sampled.DataLine;
|
||||
import javax.sound.sampled.FloatControl;
|
||||
import javax.sound.sampled.LineUnavailableException;
|
||||
import javax.sound.sampled.SourceDataLine;
|
||||
import javax.sound.sampled.UnsupportedAudioFileException;
|
||||
|
||||
public final class Signlink implements Runnable {
|
||||
|
||||
public static final void startpriv(InetAddress inetaddress) {
|
||||
threadliveid = (int) (Math.random() * 99999999D);
|
||||
if (active) {
|
||||
try {
|
||||
Thread.sleep(500L);
|
||||
} catch (Exception _ex) {
|
||||
}
|
||||
active = false;
|
||||
}
|
||||
socketreq = 0;
|
||||
threadreq = null;
|
||||
dnsreq = null;
|
||||
saveReq = null;
|
||||
urlreq = null;
|
||||
socketip = inetaddress;
|
||||
Thread thread = new Thread(new Signlink());
|
||||
thread.setDaemon(true);
|
||||
thread.start();
|
||||
while (!active) {
|
||||
try {
|
||||
Thread.sleep(50L);
|
||||
} catch (Exception _ex) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
enum Position {
|
||||
LEFT, RIGHT, NORMAL
|
||||
};
|
||||
|
||||
private final int EXTERNAL_BUFFER_SIZE = 524288; // 128Kb
|
||||
private Position curPosition;
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
active = true;
|
||||
String s = findcachedir();
|
||||
try {
|
||||
cache_dat = new RandomAccessFile(s + "main_file_cache.dat", "rw");
|
||||
for (int j = 0; j < 5; j++)
|
||||
cache_idx[j] = new RandomAccessFile(s + "main_file_cache.idx" + j, "rw");
|
||||
} catch (Exception exception) {
|
||||
exception.printStackTrace();
|
||||
}
|
||||
for (int i = threadliveid; threadliveid == i;) {
|
||||
if (socketreq != 0) {
|
||||
try {
|
||||
socket = new Socket(socketip, socketreq);
|
||||
} catch (Exception _ex) {
|
||||
socket = null;
|
||||
}
|
||||
socketreq = 0;
|
||||
} else if (threadreq != null) {
|
||||
Thread thread = new Thread(threadreq);
|
||||
thread.setDaemon(true);
|
||||
thread.start();
|
||||
thread.setPriority(threadreqpri);
|
||||
threadreq = null;
|
||||
} else if (dnsreq != null) {
|
||||
try {
|
||||
dns = InetAddress.getByName(dnsreq).getHostName();
|
||||
} catch (Exception _ex) {
|
||||
dns = "unknown";
|
||||
}
|
||||
dnsreq = null;
|
||||
} else if (saveReq != null) {
|
||||
if (savebuf != null)
|
||||
try {
|
||||
FileOutputStream fileoutputstream = new FileOutputStream(s + saveReq);
|
||||
fileoutputstream.write(savebuf, 0, savelen);
|
||||
fileoutputstream.close();
|
||||
} catch (Exception _ex) {
|
||||
}
|
||||
if (waveplay) {
|
||||
String wave = s + saveReq;
|
||||
waveplay = false;
|
||||
AudioInputStream audioInputStream = null;
|
||||
try {
|
||||
audioInputStream = AudioSystem.getAudioInputStream(new File(wave));
|
||||
} catch (UnsupportedAudioFileException e1) {
|
||||
e1.printStackTrace();
|
||||
return;
|
||||
} catch (IOException e1) {
|
||||
e1.printStackTrace();
|
||||
return;
|
||||
}
|
||||
AudioFormat format = audioInputStream.getFormat();
|
||||
SourceDataLine auline = null;
|
||||
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
|
||||
try {
|
||||
auline = (SourceDataLine) AudioSystem.getLine(info);
|
||||
auline.open(format);
|
||||
} catch (LineUnavailableException e) {
|
||||
e.printStackTrace();
|
||||
return;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return;
|
||||
}
|
||||
if (auline.isControlSupported(FloatControl.Type.PAN)) {
|
||||
FloatControl pan = (FloatControl) auline.getControl(FloatControl.Type.PAN);
|
||||
if (curPosition == Position.RIGHT)
|
||||
pan.setValue(1.0f);
|
||||
else if (curPosition == Position.LEFT)
|
||||
pan.setValue(-1.0f);
|
||||
}
|
||||
auline.start();
|
||||
int nBytesRead = 0;
|
||||
byte[] abData = new byte[EXTERNAL_BUFFER_SIZE];
|
||||
try {
|
||||
while (nBytesRead != -1) {
|
||||
nBytesRead = audioInputStream.read(abData, 0,
|
||||
abData.length);
|
||||
if (nBytesRead >= 0)
|
||||
auline.write(abData, 0, nBytesRead);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return;
|
||||
} finally {
|
||||
auline.drain();
|
||||
auline.close();
|
||||
}
|
||||
}
|
||||
if (play) {
|
||||
midi = s + saveReq;
|
||||
try {
|
||||
if (music != null) {
|
||||
music.stop();
|
||||
music.close();
|
||||
}
|
||||
playMidi(midi);
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
play = false;
|
||||
}
|
||||
saveReq = null;
|
||||
} else if (urlreq != null) {
|
||||
try {
|
||||
System.out.println("urlstream");
|
||||
urlstream = new DataInputStream((new URL(mainapp.getCodeBase(), urlreq)).openStream());
|
||||
} catch (Exception _ex) {
|
||||
urlstream = null;
|
||||
}
|
||||
urlreq = null;
|
||||
}
|
||||
try {
|
||||
Thread.sleep(50L);
|
||||
} catch (Exception _ex) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Plays the specified midi sequence.
|
||||
* @param location
|
||||
*/
|
||||
private void playMidi(String location) {
|
||||
music = null;
|
||||
synthesizer = null;
|
||||
sequence = null;
|
||||
File midiFile = new File(location);
|
||||
try {
|
||||
sequence = MidiSystem.getSequence(midiFile);
|
||||
music = MidiSystem.getSequencer();
|
||||
music.open();
|
||||
music.setSequence(sequence);
|
||||
} catch (Exception e) {
|
||||
System.err.println("Problem loading MIDI file.");
|
||||
e.printStackTrace();
|
||||
return;
|
||||
}
|
||||
if (music instanceof Synthesizer) {
|
||||
synthesizer = (Synthesizer) music;
|
||||
} else {
|
||||
try {
|
||||
synthesizer = MidiSystem.getSynthesizer();
|
||||
synthesizer.open();
|
||||
if (synthesizer.getDefaultSoundbank() == null) {
|
||||
music.getTransmitter().setReceiver(MidiSystem.getReceiver());
|
||||
} else {
|
||||
music.getTransmitter().setReceiver(synthesizer.getReceiver());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return;
|
||||
}
|
||||
}
|
||||
music.setLoopCount(Sequencer.LOOP_CONTINUOUSLY);
|
||||
music.start();
|
||||
setVolume(midiVolume);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the volume for the midi synthesizer.
|
||||
* @param value
|
||||
*/
|
||||
public static boolean setVolume(int value) {
|
||||
if (synthesizer == null) {
|
||||
return false;
|
||||
}
|
||||
int CHANGE_VOLUME = 7;
|
||||
midiVolume = value;
|
||||
if (synthesizer.getDefaultSoundbank() == null) {
|
||||
try {
|
||||
ShortMessage volumeMessage = new ShortMessage();
|
||||
for (int i = 0; i < 16; i++) {
|
||||
volumeMessage.setMessage(ShortMessage.CONTROL_CHANGE, i, CHANGE_VOLUME, midiVolume);
|
||||
volumeMessage.setMessage(ShortMessage.CONTROL_CHANGE, i, 39, midiVolume);
|
||||
MidiSystem.getReceiver().send(volumeMessage, -1);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
MidiChannel[] channels = synthesizer.getChannels();
|
||||
for (int c = 0; channels != null && c < channels.length; c++) {
|
||||
channels[c].controlChange(CHANGE_VOLUME, midiVolume);
|
||||
channels[c].controlChange(39, midiVolume);
|
||||
}
|
||||
} catch (Exception e){
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fades the volume of the midi out.
|
||||
* Stops the current midi playing.
|
||||
*/
|
||||
public static void fadeOut() {
|
||||
if (music == null) {
|
||||
return;
|
||||
}
|
||||
int volume = midiVolume;
|
||||
if (music.isRunning()) {
|
||||
for (int index = midiVolume; index > 0 && volume > 0; index--) {
|
||||
volume--;
|
||||
setVolume(volume);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static Sequencer music = null;
|
||||
public static Sequence sequence = null;
|
||||
public static Synthesizer synthesizer = null;
|
||||
|
||||
public static String findcachedir() {
|
||||
String path = System.getProperty("user.home") + "/.2006rebotted_file_system/";
|
||||
File file = new File(path);
|
||||
if (!file.exists()) {
|
||||
if (!file.mkdirs()) {
|
||||
return secondDir();
|
||||
}
|
||||
}
|
||||
return path;
|
||||
}
|
||||
|
||||
public static String secondDir() {
|
||||
File file = new File("C:/.2006rebotted_file_system/");
|
||||
if (!file.exists()) {
|
||||
file.mkdirs();
|
||||
}
|
||||
return file.toString();
|
||||
}
|
||||
|
||||
public static synchronized Socket opensocket(int i) throws IOException {
|
||||
for (socketreq = i; socketreq != 0;) {
|
||||
try {
|
||||
Thread.sleep(50L);
|
||||
} catch (Exception _ex) {
|
||||
}
|
||||
}
|
||||
|
||||
if (socket == null) {
|
||||
throw new IOException("could not open socket");
|
||||
} else {
|
||||
return socket;
|
||||
}
|
||||
}
|
||||
|
||||
public static synchronized DataInputStream openurl(String s) throws IOException {
|
||||
for (urlreq = s; urlreq != null;) {
|
||||
try {
|
||||
Thread.sleep(50L);
|
||||
} catch (Exception _ex) {
|
||||
}
|
||||
}
|
||||
|
||||
if (urlstream == null) {
|
||||
throw new IOException("could not open: " + s);
|
||||
} else {
|
||||
return urlstream;
|
||||
}
|
||||
}
|
||||
|
||||
public static synchronized void dnslookup(String s) {
|
||||
dns = s;
|
||||
dnsreq = s;
|
||||
}
|
||||
|
||||
public static synchronized void startthread(Runnable runnable, int i) {
|
||||
threadreqpri = i;
|
||||
threadreq = runnable;
|
||||
}
|
||||
|
||||
public static synchronized boolean wavesave(byte abyte0[], int i) {
|
||||
if (i > 0x1e8480) {
|
||||
return false;
|
||||
}
|
||||
if (saveReq != null) {
|
||||
return false;
|
||||
} else {
|
||||
wavepos = (wavepos + 1) % 5;
|
||||
savelen = i;
|
||||
savebuf = abyte0;
|
||||
waveplay = true;
|
||||
saveReq = "sound" + wavepos + ".wav";
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public static synchronized boolean wavereplay() {
|
||||
if (saveReq != null) {
|
||||
return false;
|
||||
} else {
|
||||
savebuf = null;
|
||||
waveplay = true;
|
||||
saveReq = "sound" + wavepos + ".wav";
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public static synchronized void saveMidi(byte abyte0[], int i) {
|
||||
if (i > 0x1e8480) {
|
||||
return;
|
||||
}
|
||||
if (saveReq != null) {
|
||||
} else {
|
||||
midiPos = (midiPos + 1) % 5;
|
||||
savelen = i;
|
||||
savebuf = abyte0;
|
||||
play = true;
|
||||
saveReq = "jingle" + midiPos + ".mid";
|
||||
}
|
||||
}
|
||||
|
||||
public static void reporterror(String s) {
|
||||
System.out.println("Error: " + s);
|
||||
}
|
||||
|
||||
private Signlink() {
|
||||
}
|
||||
|
||||
public static final int clientversion = 317;
|
||||
public static int storeid = 32;
|
||||
public static RandomAccessFile cache_dat = null;
|
||||
public static final RandomAccessFile[] cache_idx = new RandomAccessFile[5];
|
||||
public static boolean sunjava;
|
||||
public static Applet mainapp = null;
|
||||
private static boolean active;
|
||||
private static int threadliveid;
|
||||
private static InetAddress socketip;
|
||||
private static int socketreq;
|
||||
private static Socket socket = null;
|
||||
private static int threadreqpri = 1;
|
||||
private static Runnable threadreq = null;
|
||||
private static String dnsreq = null;
|
||||
public static String dns = null;
|
||||
private static String urlreq = null;
|
||||
private static DataInputStream urlstream = null;
|
||||
public static boolean reporterror = true;
|
||||
public static String errorname = "";
|
||||
public static Midi midii = new Midi();
|
||||
private static int savelen;
|
||||
private static String saveReq = null;
|
||||
private static byte savebuf[] = null;
|
||||
public static boolean play;
|
||||
private static int midiPos;
|
||||
public static String midi = null;
|
||||
public static int midiVolume;
|
||||
public static int midifade;
|
||||
private static boolean waveplay;
|
||||
private static int wavepos;
|
||||
public static String wave = null;
|
||||
public static int wavevol;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
|
||||
final class SizeConstants {
|
||||
|
||||
public static final int[] anIntArray552 = {
|
||||
6, 21, 25, 33, 254, 127, 183, 87, 216, 215,
|
||||
211, 48, 15, 195, 149, 233, 162, 102, 104, 179,
|
||||
222, 103, 224, 81, 152, 89, 45, 11, 197, 187,
|
||||
210, 37, 135, 220, 137, 128, 63, 188, 207, 144,
|
||||
201, 161, 28, 192, 206, 32, 115, 57, 196, 22,
|
||||
132, 226, 227, 169, 237, 105, 174, 109, 5, 55,
|
||||
205, 156, 8, 34, 113, 176, 209, 3, 50, 117,
|
||||
122, 189, 101, 142, 246, 163, 238, 76, 74, 84,
|
||||
91, 217, 58, 23, 118, 66, 35, 164, 114, 138,
|
||||
96, 110, 29, 235, 147, 249, 214, 198, 242, 56,
|
||||
94, 248, 59, 253, 150, 16, 13, 46, 24, 130,
|
||||
232, 153, 167, 229, 79, 134, 26, 191, 0, 213,
|
||||
204, 241, 160, 39, 180, 49, 250, 47, 140, 193,
|
||||
202, 108, 120, 247, 106, 194, 65, 27, 93, 143,
|
||||
186, 171, 125, 54, 155, 190, 139, 165, 77, 178,
|
||||
72, 99, 61, 141, 116, 100, 80, 184, 154, 145,
|
||||
131, 12, 90, 42, 255, 75, 44, 78, 172, 107,
|
||||
52, 7, 119, 146, 38, 218, 10, 223, 182, 240,
|
||||
159, 88, 158, 64, 221, 200, 1, 43, 252, 62,
|
||||
40, 230, 129, 18, 111, 51, 17, 53, 136, 20,
|
||||
60, 225, 30, 9, 239, 97, 234, 41, 203, 236,
|
||||
36, 185, 212, 19, 245, 251, 208, 175, 243, 86,
|
||||
2, 69, 181, 151, 14, 166, 70, 98, 124, 126,
|
||||
67, 157, 199, 112, 123, 177, 82, 168, 71, 170,
|
||||
95, 31, 92, 4, 231, 219, 73, 85, 244, 148,
|
||||
173, 228, 121, 83, 133, 68, 0
|
||||
};
|
||||
public static final int[] packetSizes = {
|
||||
0, 0, 0, 0, 6, 0, 0, 0, 4, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //10
|
||||
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, //20
|
||||
0, 0, 0, 0, -2, 4, 3, 0, 0, 0, //30
|
||||
0, 0, 0, 0, 5, 0, 0, 6, 0, 0, //40
|
||||
9, 0, 0, -2, 0, 0, 0, 0, 0, 0, //50
|
||||
-2, 1, 0, 0, 2, -2, 0, 0, 0, 0, //60
|
||||
6, 3, 2, 4, 2, 4, 0, 0, 0, 4, //70
|
||||
0, -2, 0, 0, 7, 2, 0, 6, 0, 0, //80
|
||||
0, 0, 0, 0, 0, 0, 0, 2, 0, 1, //90
|
||||
0, 2, 0, 0, -1, 4, 1, 0, 0, 0, //100
|
||||
1, 0, 0, 0, 2, 0, 0, 15, 0, 0, //110
|
||||
0, 4, 4, 0, 0, 0, -2, 0, 0, 0, //120
|
||||
0, 0, 0, 0, 6, 0, 0, 0, 0, 0, //130
|
||||
0, 0, 2, 0, 0, 0, 0, 14, 0, 0, //140
|
||||
0, 4, 0, 0, 0, 0, 3, 0, 0, 0, //150
|
||||
4, 0, 0, 0, 2, 0, 6, 0, 0, 0, //160
|
||||
0, 3, 0, 0, 5, 0, 10, 6, 0, 0, //170
|
||||
0, 0, 0, 0, 0, 2, 0, 0, 0, 0, //180
|
||||
0, 0, 0, 0, 0, 0, -1, 0, 0, 0, //190
|
||||
4, 0, 0, 0, 0, 0, 3, 0, 2, 0, //200
|
||||
0, 0, 0, 0, -2, 7, 0, 0, 2, 0, //210
|
||||
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, //220
|
||||
8, 0, 0, 0, 0, 0, 0, 0, 0, 0, //230
|
||||
2, -2, 0, 0, 0, 0, 6, 0, 4, 3, //240
|
||||
0, 0, 0, -1, 6, 0, 0//250
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class Skills {
|
||||
|
||||
public static final int skillsCount = 25;
|
||||
public static final String[] skillNames = {"attack", "defence", "strength", "hitpoints", "ranged", "prayer", "magic", "cooking", "woodcutting", "fletching", "fishing", "firemaking", "crafting", "smithing", "mining", "herblore", "agility", "thieving", "slayer", "farming", "runecraft", "-unused-", "-unused-", "-unused-", "-unused-"};
|
||||
public static final boolean[] skillEnabled = {true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false};
|
||||
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
import java.io.InputStream;
|
||||
import javax.sound.sampled.AudioInputStream;
|
||||
import javax.sound.sampled.AudioSystem;
|
||||
import javax.sound.sampled.Clip;
|
||||
import javax.sound.sampled.DataLine;
|
||||
import javax.sound.sampled.FloatControl;
|
||||
|
||||
import sun.audio.AudioPlayer; //Note! If you see a compile error here, make sure you set your JDK to Java 8!
|
||||
|
||||
public class SoundPlayer implements Runnable {
|
||||
|
||||
private AudioInputStream stream;
|
||||
private DataLine.Info info;
|
||||
private Clip sound;
|
||||
|
||||
private InputStream soundStream;
|
||||
private Thread player;
|
||||
private int delay;
|
||||
private int soundLevel;
|
||||
private InputStream arg0;
|
||||
public static int volume;
|
||||
|
||||
/**
|
||||
* Initializes the sound player.
|
||||
* @param stream
|
||||
* @param level
|
||||
* @param delay
|
||||
*/
|
||||
public SoundPlayer(InputStream stream, int level, int delay) {
|
||||
if (level == 0 || volume == 4 || level - volume <= 0) {
|
||||
return;
|
||||
}
|
||||
this.soundStream = stream;
|
||||
this.soundLevel = level;
|
||||
this.delay = delay;
|
||||
player = new Thread(this);
|
||||
player.start();
|
||||
}
|
||||
|
||||
/**
|
||||
* Plays the sound.
|
||||
*/
|
||||
public void run() {
|
||||
try {
|
||||
AudioPlayer.player.start(arg0);
|
||||
stream = AudioSystem.getAudioInputStream(soundStream);
|
||||
info = new DataLine.Info(Clip.class, stream.getFormat());
|
||||
sound = (Clip) AudioSystem.getLine(info);
|
||||
sound.open(stream);
|
||||
FloatControl volume = (FloatControl) sound.getControl(FloatControl.Type.MASTER_GAIN);
|
||||
volume.setValue(getDecibels(soundLevel - getVolume()));
|
||||
if (delay > 0) {
|
||||
Thread.sleep(delay);
|
||||
}
|
||||
sound.start();
|
||||
while (sound.isActive()) {
|
||||
Thread.sleep(250);
|
||||
}
|
||||
Thread.sleep(10000);
|
||||
sound.close();
|
||||
stream.close();
|
||||
player.interrupt();
|
||||
} catch (Exception e) {
|
||||
player.interrupt();
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the client's volume level.
|
||||
* @param level
|
||||
*/
|
||||
public static void setVolume(int level) {
|
||||
volume = level;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the client's volume level.
|
||||
*/
|
||||
public static int getVolume() {
|
||||
return volume;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the decibels for a given volume level.
|
||||
* @param level
|
||||
* @return
|
||||
*/
|
||||
public float getDecibels(int level) {
|
||||
switch (level) {
|
||||
case 0: // 4 in player options
|
||||
return (float) -1.0f;
|
||||
case 1: // 3
|
||||
return (float) -5.0f;
|
||||
case 2: // 2
|
||||
return (float) -10.0f;
|
||||
case 3: // 1
|
||||
return (float) -15.0f;
|
||||
case 4: // off
|
||||
return (float) -100.0f;
|
||||
default:
|
||||
return (float) 0.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,157 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class Sounds {
|
||||
|
||||
private Sounds() {
|
||||
aClass6Array329 = new Class6[10];
|
||||
}
|
||||
|
||||
public static void unpack(Stream stream) {
|
||||
aByteArray327 = new byte[0x6baa8];
|
||||
aStream_328 = new Stream(aByteArray327);
|
||||
Class6.method166();
|
||||
do {
|
||||
int j = stream.readUnsignedWord();
|
||||
if (j == 65535) {
|
||||
return;
|
||||
}
|
||||
aSoundsArray325s[j] = new Sounds();
|
||||
aSoundsArray325s[j].method242(stream);
|
||||
anIntArray326[j] = aSoundsArray325s[j].method243();
|
||||
} while (true);
|
||||
}
|
||||
|
||||
public static Stream method241(int i, int j) {
|
||||
if (aSoundsArray325s[j] != null) {
|
||||
Sounds sounds = aSoundsArray325s[j];
|
||||
return sounds.method244(i);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private void method242(Stream stream) {
|
||||
for (int i = 0; i < 10; i++) {
|
||||
int j = stream.readUnsignedByte();
|
||||
if (j != 0) {
|
||||
stream.currentOffset--;
|
||||
aClass6Array329[i] = new Class6();
|
||||
aClass6Array329[i].method169(stream);
|
||||
}
|
||||
}
|
||||
anInt330 = stream.readUnsignedWord();
|
||||
anInt331 = stream.readUnsignedWord();
|
||||
}
|
||||
|
||||
private int method243() {
|
||||
int j = 0x98967f;
|
||||
for (int k = 0; k < 10; k++) {
|
||||
if (aClass6Array329[k] != null && aClass6Array329[k].anInt114 / 20 < j) {
|
||||
j = aClass6Array329[k].anInt114 / 20;
|
||||
}
|
||||
}
|
||||
|
||||
if (anInt330 < anInt331 && anInt330 / 20 < j) {
|
||||
j = anInt330 / 20;
|
||||
}
|
||||
if (j == 0x98967f || j == 0) {
|
||||
return 0;
|
||||
}
|
||||
for (int l = 0; l < 10; l++) {
|
||||
if (aClass6Array329[l] != null) {
|
||||
aClass6Array329[l].anInt114 -= j * 20;
|
||||
}
|
||||
}
|
||||
|
||||
if (anInt330 < anInt331) {
|
||||
anInt330 -= j * 20;
|
||||
anInt331 -= j * 20;
|
||||
}
|
||||
return j;
|
||||
}
|
||||
|
||||
private Stream method244(int i) {
|
||||
int k = method245(i);
|
||||
aStream_328.currentOffset = 0;
|
||||
aStream_328.writeDWord(0x52494646);
|
||||
aStream_328.method403(36 + k);
|
||||
aStream_328.writeDWord(0x57415645);
|
||||
aStream_328.writeDWord(0x666d7420);
|
||||
aStream_328.method403(16);
|
||||
aStream_328.method400(1);
|
||||
aStream_328.method400(1);
|
||||
aStream_328.method403(22050);
|
||||
aStream_328.method403(22050);
|
||||
aStream_328.method400(1);
|
||||
aStream_328.method400(8);
|
||||
aStream_328.writeDWord(0x64617461);
|
||||
aStream_328.method403(k);
|
||||
aStream_328.currentOffset += k;
|
||||
return aStream_328;
|
||||
}
|
||||
|
||||
private int method245(int i) {
|
||||
int j = 0;
|
||||
for (int k = 0; k < 10; k++) {
|
||||
if (aClass6Array329[k] != null && aClass6Array329[k].anInt113 + aClass6Array329[k].anInt114 > j) {
|
||||
j = aClass6Array329[k].anInt113 + aClass6Array329[k].anInt114;
|
||||
}
|
||||
}
|
||||
|
||||
if (j == 0) {
|
||||
return 0;
|
||||
}
|
||||
int l = 22050 * j / 1000;
|
||||
int i1 = 22050 * anInt330 / 1000;
|
||||
int j1 = 22050 * anInt331 / 1000;
|
||||
if (i1 < 0 || i1 > l || j1 < 0 || j1 > l || i1 >= j1) {
|
||||
i = 0;
|
||||
}
|
||||
int k1 = l + (j1 - i1) * (i - 1);
|
||||
for (int l1 = 44; l1 < k1 + 44; l1++) {
|
||||
aByteArray327[l1] = -128;
|
||||
}
|
||||
|
||||
for (int i2 = 0; i2 < 10; i2++) {
|
||||
if (aClass6Array329[i2] != null) {
|
||||
int j2 = aClass6Array329[i2].anInt113 * 22050 / 1000;
|
||||
int i3 = aClass6Array329[i2].anInt114 * 22050 / 1000;
|
||||
int ai[] = aClass6Array329[i2].method167(j2, aClass6Array329[i2].anInt113);
|
||||
for (int l3 = 0; l3 < j2; l3++) {
|
||||
aByteArray327[l3 + i3 + 44] += (byte) (ai[l3] >> 8);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (i > 1) {
|
||||
i1 += 44;
|
||||
j1 += 44;
|
||||
l += 44;
|
||||
int k2 = (k1 += 44) - l;
|
||||
for (int j3 = l - 1; j3 >= j1; j3--) {
|
||||
aByteArray327[j3 + k2] = aByteArray327[j3];
|
||||
}
|
||||
|
||||
for (int k3 = 1; k3 < i; k3++) {
|
||||
int l2 = (j1 - i1) * k3;
|
||||
System.arraycopy(aByteArray327, i1, aByteArray327, i1 + l2, j1 - i1);
|
||||
|
||||
}
|
||||
|
||||
k1 -= 44;
|
||||
}
|
||||
return k1;
|
||||
}
|
||||
|
||||
private static final Sounds[] aSoundsArray325s = new Sounds[5000];
|
||||
public static final int[] anIntArray326 = new int[5000];
|
||||
private static byte[] aByteArray327;
|
||||
private static Stream aStream_328;
|
||||
private final Class6[] aClass6Array329;
|
||||
private int anInt330;
|
||||
private int anInt331;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public final class SpotAnim {
|
||||
|
||||
public static void unpackConfig(StreamLoader streamLoader) {
|
||||
Stream stream = new Stream(streamLoader.getDataForName("spotanim.dat"));
|
||||
int length = stream.readUnsignedWord();
|
||||
if (cache == null) {
|
||||
cache = new SpotAnim[length];
|
||||
}
|
||||
for (int j = 0; j < length; j++) {
|
||||
if (cache[j] == null) {
|
||||
cache[j] = new SpotAnim();
|
||||
}
|
||||
cache[j].anInt404 = j;
|
||||
cache[j].readValues(stream);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void readValues(Stream stream) {
|
||||
do {
|
||||
int i = stream.readUnsignedByte();
|
||||
if (i == 0) {
|
||||
return;
|
||||
}
|
||||
if (i == 1) {
|
||||
anInt405 = stream.readUnsignedWord();
|
||||
} else if (i == 2) {
|
||||
anInt406 = stream.readUnsignedWord();
|
||||
if (Animation.anims != null) {
|
||||
aAnimation_407 = Animation.anims[anInt406];
|
||||
}
|
||||
} else if (i == 4) {
|
||||
anInt410 = stream.readUnsignedWord();
|
||||
} else if (i == 5) {
|
||||
anInt411 = stream.readUnsignedWord();
|
||||
} else if (i == 6) {
|
||||
anInt412 = stream.readUnsignedWord();
|
||||
} else if (i == 7) {
|
||||
anInt413 = stream.readUnsignedByte();
|
||||
} else if (i == 8) {
|
||||
anInt414 = stream.readUnsignedByte();
|
||||
} else if (i >= 40 && i < 50) {
|
||||
anIntArray408[i - 40] = stream.readUnsignedWord();
|
||||
} else if (i >= 50 && i < 60) {
|
||||
anIntArray409[i - 50] = stream.readUnsignedWord();
|
||||
} else {
|
||||
System.out.println("Error unrecognised spotanim config code: " + i);
|
||||
}
|
||||
} while (true);
|
||||
}
|
||||
|
||||
public Model getModel() {
|
||||
Model model = (Model) aMRUNodes_415.insertFromCache(anInt404);
|
||||
if (model != null) {
|
||||
return model;
|
||||
}
|
||||
model = Model.method462(anInt405);
|
||||
if (model == null) {
|
||||
return null;
|
||||
}
|
||||
for (int i = 0; i < 6; i++) {
|
||||
if (anIntArray408[0] != 0) {
|
||||
model.method476(anIntArray408[i], anIntArray409[i]);
|
||||
}
|
||||
}
|
||||
|
||||
aMRUNodes_415.removeFromCache(model, anInt404);
|
||||
return model;
|
||||
}
|
||||
|
||||
private SpotAnim() {
|
||||
anInt406 = -1;
|
||||
anIntArray408 = new int[6];
|
||||
anIntArray409 = new int[6];
|
||||
anInt410 = 128;
|
||||
anInt411 = 128;
|
||||
}
|
||||
|
||||
public static SpotAnim cache[];
|
||||
private int anInt404;
|
||||
private int anInt405;
|
||||
private int anInt406;
|
||||
public Animation aAnimation_407;
|
||||
private final int[] anIntArray408;
|
||||
private final int[] anIntArray409;
|
||||
public int anInt410;
|
||||
public int anInt411;
|
||||
public int anInt412;
|
||||
public int anInt413;
|
||||
public int anInt414;
|
||||
public static MRUNodes aMRUNodes_415 = new MRUNodes(30);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,517 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
import java.awt.Component;
|
||||
import java.awt.Image;
|
||||
import java.awt.MediaTracker;
|
||||
import java.awt.Toolkit;
|
||||
import java.awt.image.PixelGrabber;
|
||||
|
||||
public final class Sprite extends DrawingArea {
|
||||
|
||||
public Sprite(int i, int j) {
|
||||
pixels = new int[i * j];
|
||||
width = trimWidth = i;
|
||||
height = trimHeight = j;
|
||||
anInt1442 = anInt1443 = 0;
|
||||
}
|
||||
|
||||
public Sprite(byte abyte0[], Component component) {
|
||||
try {
|
||||
// Image image =
|
||||
// Toolkit.getDefaultToolkit().getImage(signlink.findcachedir()+"mopar.jpg");
|
||||
Image image = Toolkit.getDefaultToolkit().createImage(abyte0);
|
||||
MediaTracker mediatracker = new MediaTracker(component);
|
||||
mediatracker.addImage(image, 0);
|
||||
mediatracker.waitForAll();
|
||||
width = image.getWidth(component);
|
||||
height = image.getHeight(component);
|
||||
trimWidth = width;
|
||||
trimHeight = height;
|
||||
anInt1442 = 0;
|
||||
anInt1443 = 0;
|
||||
pixels = new int[width * height];
|
||||
PixelGrabber pixelgrabber = new PixelGrabber(image, 0, 0, width, height, pixels, 0, width);
|
||||
pixelgrabber.grabPixels();
|
||||
} catch (Exception _ex) {
|
||||
System.out.println("Error converting jpg");
|
||||
}
|
||||
}
|
||||
|
||||
public Sprite(StreamLoader streamLoader, String s, int i) {
|
||||
Stream stream = new Stream(streamLoader.getDataForName(s + ".dat"));
|
||||
Stream stream_1 = new Stream(streamLoader.getDataForName("index.dat"));
|
||||
stream_1.currentOffset = stream.readUnsignedWord();
|
||||
trimWidth = stream_1.readUnsignedWord();
|
||||
trimHeight = stream_1.readUnsignedWord();
|
||||
int j = stream_1.readUnsignedByte();
|
||||
int ai[] = new int[j];
|
||||
for (int k = 0; k < j - 1; k++) {
|
||||
ai[k + 1] = stream_1.read3Bytes();
|
||||
if (ai[k + 1] == 0) {
|
||||
ai[k + 1] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
for (int l = 0; l < i; l++) {
|
||||
stream_1.currentOffset += 2;
|
||||
stream.currentOffset += stream_1.readUnsignedWord() * stream_1.readUnsignedWord();
|
||||
stream_1.currentOffset++;
|
||||
}
|
||||
|
||||
anInt1442 = stream_1.readUnsignedByte();
|
||||
anInt1443 = stream_1.readUnsignedByte();
|
||||
width = stream_1.readUnsignedWord();
|
||||
height = stream_1.readUnsignedWord();
|
||||
int i1 = stream_1.readUnsignedByte();
|
||||
int j1 = width * height;
|
||||
pixels = new int[j1];
|
||||
if (i1 == 0) {
|
||||
for (int k1 = 0; k1 < j1; k1++) {
|
||||
pixels[k1] = ai[stream.readUnsignedByte()];
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
if (i1 == 1) {
|
||||
for (int l1 = 0; l1 < width; l1++) {
|
||||
for (int i2 = 0; i2 < height; i2++) {
|
||||
pixels[l1 + i2 * width] = ai[stream.readUnsignedByte()];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void method343() {
|
||||
DrawingArea.initDrawingArea(height, width, pixels);
|
||||
}
|
||||
|
||||
public void method344(int i, int j, int k) {
|
||||
for (int i1 = 0; i1 < pixels.length; i1++) {
|
||||
int j1 = pixels[i1];
|
||||
if (j1 != 0) {
|
||||
int k1 = j1 >> 16 & 0xff;
|
||||
k1 += i;
|
||||
if (k1 < 1) {
|
||||
k1 = 1;
|
||||
} else if (k1 > 255) {
|
||||
k1 = 255;
|
||||
}
|
||||
int l1 = j1 >> 8 & 0xff;
|
||||
l1 += j;
|
||||
if (l1 < 1) {
|
||||
l1 = 1;
|
||||
} else if (l1 > 255) {
|
||||
l1 = 255;
|
||||
}
|
||||
int i2 = j1 & 0xff;
|
||||
i2 += k;
|
||||
if (i2 < 1) {
|
||||
i2 = 1;
|
||||
} else if (i2 > 255) {
|
||||
i2 = 255;
|
||||
}
|
||||
pixels[i1] = (k1 << 16) + (l1 << 8) + i2;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void method345() {
|
||||
/*int ai[] = new int[trimWidth * trimHeight];
|
||||
for (int j = 0; j < height; j++) {
|
||||
System.arraycopy(pixels, j * width, ai, j + anInt1443 * trimWidth + anInt1442, width);
|
||||
}
|
||||
|
||||
pixels = ai;
|
||||
width = trimWidth;
|
||||
height = trimHeight;
|
||||
anInt1442 = 0;
|
||||
anInt1443 = 0;*/
|
||||
int ai[] = new int[trimWidth * trimHeight];
|
||||
for (int j = 0; j < height; j++) {
|
||||
for (int k = 0; k < width; k++)
|
||||
ai[(j + anInt1443) * trimWidth + (k + anInt1442)] = pixels[j
|
||||
* width + k];
|
||||
}
|
||||
pixels = ai;
|
||||
width = trimWidth;
|
||||
height = trimHeight;
|
||||
anInt1442 = 0;
|
||||
anInt1443 = 0;
|
||||
}
|
||||
|
||||
public void method346(int i, int j) {
|
||||
i += anInt1442;
|
||||
j += anInt1443;
|
||||
int l = i + j * DrawingArea.width;
|
||||
int i1 = 0;
|
||||
int j1 = height;
|
||||
int k1 = width;
|
||||
int l1 = DrawingArea.width - k1;
|
||||
int i2 = 0;
|
||||
if (j < DrawingArea.topY) {
|
||||
int j2 = DrawingArea.topY - j;
|
||||
j1 -= j2;
|
||||
j = DrawingArea.topY;
|
||||
i1 += j2 * k1;
|
||||
l += j2 * DrawingArea.width;
|
||||
}
|
||||
if (j + j1 > DrawingArea.bottomY) {
|
||||
j1 -= j + j1 - DrawingArea.bottomY;
|
||||
}
|
||||
if (i < DrawingArea.topX) {
|
||||
int k2 = DrawingArea.topX - i;
|
||||
k1 -= k2;
|
||||
i = DrawingArea.topX;
|
||||
i1 += k2;
|
||||
l += k2;
|
||||
i2 += k2;
|
||||
l1 += k2;
|
||||
}
|
||||
if (i + k1 > DrawingArea.bottomX) {
|
||||
int l2 = i + k1 - DrawingArea.bottomX;
|
||||
k1 -= l2;
|
||||
i2 += l2;
|
||||
l1 += l2;
|
||||
}
|
||||
if (k1 <= 0 || j1 <= 0) {
|
||||
} else {
|
||||
method347(l, k1, j1, i2, i1, l1, pixels, DrawingArea.pixels);
|
||||
}
|
||||
}
|
||||
|
||||
private void method347(int i, int j, int k, int l, int i1, int k1, int ai[], int ai1[]) {
|
||||
int l1 = -(j >> 2);
|
||||
j = -(j & 3);
|
||||
for (int i2 = -k; i2 < 0; i2++) {
|
||||
for (int j2 = l1; j2 < 0; j2++) {
|
||||
ai1[i++] = ai[i1++];
|
||||
ai1[i++] = ai[i1++];
|
||||
ai1[i++] = ai[i1++];
|
||||
ai1[i++] = ai[i1++];
|
||||
}
|
||||
|
||||
for (int k2 = j; k2 < 0; k2++) {
|
||||
ai1[i++] = ai[i1++];
|
||||
}
|
||||
|
||||
i += k1;
|
||||
i1 += l;
|
||||
}
|
||||
}
|
||||
|
||||
public void drawSprite1(int i, int j) {
|
||||
int k = 128;// was parameter
|
||||
i += anInt1442;
|
||||
j += anInt1443;
|
||||
int i1 = i + j * DrawingArea.width;
|
||||
int j1 = 0;
|
||||
int k1 = height;
|
||||
int l1 = width;
|
||||
int i2 = DrawingArea.width - l1;
|
||||
int j2 = 0;
|
||||
if (j < DrawingArea.topY) {
|
||||
int k2 = DrawingArea.topY - j;
|
||||
k1 -= k2;
|
||||
j = DrawingArea.topY;
|
||||
j1 += k2 * l1;
|
||||
i1 += k2 * DrawingArea.width;
|
||||
}
|
||||
if (j + k1 > DrawingArea.bottomY) {
|
||||
k1 -= j + k1 - DrawingArea.bottomY;
|
||||
}
|
||||
if (i < DrawingArea.topX) {
|
||||
int l2 = DrawingArea.topX - i;
|
||||
l1 -= l2;
|
||||
i = DrawingArea.topX;
|
||||
j1 += l2;
|
||||
i1 += l2;
|
||||
j2 += l2;
|
||||
i2 += l2;
|
||||
}
|
||||
if (i + l1 > DrawingArea.bottomX) {
|
||||
int i3 = i + l1 - DrawingArea.bottomX;
|
||||
l1 -= i3;
|
||||
j2 += i3;
|
||||
i2 += i3;
|
||||
}
|
||||
if (!(l1 <= 0 || k1 <= 0)) {
|
||||
method351(j1, l1, DrawingArea.pixels, pixels, j2, k1, i2, k, i1);
|
||||
}
|
||||
}
|
||||
|
||||
public void drawSprite(int i, int k) {
|
||||
i += anInt1442;
|
||||
k += anInt1443;
|
||||
int l = i + k * DrawingArea.width;
|
||||
int i1 = 0;
|
||||
int j1 = height;
|
||||
int k1 = width;
|
||||
int l1 = DrawingArea.width - k1;
|
||||
int i2 = 0;
|
||||
if (k < DrawingArea.topY) {
|
||||
int j2 = DrawingArea.topY - k;
|
||||
j1 -= j2;
|
||||
k = DrawingArea.topY;
|
||||
i1 += j2 * k1;
|
||||
l += j2 * DrawingArea.width;
|
||||
}
|
||||
if (k + j1 > DrawingArea.bottomY) {
|
||||
j1 -= k + j1 - DrawingArea.bottomY;
|
||||
}
|
||||
if (i < DrawingArea.topX) {
|
||||
int k2 = DrawingArea.topX - i;
|
||||
k1 -= k2;
|
||||
i = DrawingArea.topX;
|
||||
i1 += k2;
|
||||
l += k2;
|
||||
i2 += k2;
|
||||
l1 += k2;
|
||||
}
|
||||
if (i + k1 > DrawingArea.bottomX) {
|
||||
int l2 = i + k1 - DrawingArea.bottomX;
|
||||
k1 -= l2;
|
||||
i2 += l2;
|
||||
l1 += l2;
|
||||
}
|
||||
if (!(k1 <= 0 || j1 <= 0)) {
|
||||
method349(DrawingArea.pixels, pixels, i1, l, k1, j1, l1, i2);
|
||||
}
|
||||
}
|
||||
|
||||
private void method349(int ai[], int ai1[], int j, int k, int l, int i1, int j1, int k1) {
|
||||
int i;// was parameter
|
||||
int l1 = -(l >> 2);
|
||||
l = -(l & 3);
|
||||
for (int i2 = -i1; i2 < 0; i2++) {
|
||||
for (int j2 = l1; j2 < 0; j2++) {
|
||||
i = ai1[j++];
|
||||
if (i != 0) {
|
||||
ai[k++] = i;
|
||||
} else {
|
||||
k++;
|
||||
}
|
||||
i = ai1[j++];
|
||||
if (i != 0) {
|
||||
ai[k++] = i;
|
||||
} else {
|
||||
k++;
|
||||
}
|
||||
i = ai1[j++];
|
||||
if (i != 0) {
|
||||
ai[k++] = i;
|
||||
} else {
|
||||
k++;
|
||||
}
|
||||
i = ai1[j++];
|
||||
if (i != 0) {
|
||||
ai[k++] = i;
|
||||
} else {
|
||||
k++;
|
||||
}
|
||||
}
|
||||
|
||||
for (int k2 = l; k2 < 0; k2++) {
|
||||
i = ai1[j++];
|
||||
if (i != 0) {
|
||||
ai[k++] = i;
|
||||
} else {
|
||||
k++;
|
||||
}
|
||||
}
|
||||
|
||||
k += j1;
|
||||
j += k1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void method351(int i, int j, int ai[], int ai1[], int l, int i1, int j1, int k1, int l1) {
|
||||
int k;// was parameter
|
||||
int j2 = 256 - k1;
|
||||
for (int k2 = -i1; k2 < 0; k2++) {
|
||||
for (int l2 = -j; l2 < 0; l2++) {
|
||||
k = ai1[i++];
|
||||
if (k != 0) {
|
||||
int i3 = ai[l1];
|
||||
ai[l1++] = ((k & 0xff00ff) * k1 + (i3 & 0xff00ff) * j2 & 0xff00ff00) + ((k & 0xff00) * k1 + (i3 & 0xff00) * j2 & 0xff0000) >> 8;
|
||||
} else {
|
||||
l1++;
|
||||
}
|
||||
}
|
||||
|
||||
l1 += j1;
|
||||
i += l;
|
||||
}
|
||||
}
|
||||
|
||||
public void method352(int i, int j, int ai[], int k, int ai1[], int i1, int j1, int k1, int l1, int i2) {
|
||||
try {
|
||||
int j2 = -l1 / 2;
|
||||
int k2 = -i / 2;
|
||||
int l2 = (int) (Math.sin(j / 326.11000000000001D) * 65536D);
|
||||
int i3 = (int) (Math.cos(j / 326.11000000000001D) * 65536D);
|
||||
l2 = l2 * k >> 8;
|
||||
i3 = i3 * k >> 8;
|
||||
int j3 = (i2 << 16) + k2 * l2 + j2 * i3;
|
||||
int k3 = (i1 << 16) + k2 * i3 - j2 * l2;
|
||||
int l3 = k1 + j1 * DrawingArea.width;
|
||||
for (j1 = 0; j1 < i; j1++) {
|
||||
int i4 = ai1[j1];
|
||||
int j4 = l3 + i4;
|
||||
int k4 = j3 + i3 * i4;
|
||||
int l4 = k3 - l2 * i4;
|
||||
for (k1 = -ai[j1]; k1 < 0; k1++) {
|
||||
DrawingArea.pixels[j4++] = pixels[(k4 >> 16) + (l4 >> 16) * width];
|
||||
k4 += i3;
|
||||
l4 -= l2;
|
||||
}
|
||||
|
||||
j3 += l2;
|
||||
k3 += i3;
|
||||
l3 += DrawingArea.width;
|
||||
}
|
||||
|
||||
} catch (Exception _ex) {
|
||||
}
|
||||
}
|
||||
|
||||
public void method353(int i, double d, int l1) {
|
||||
// all of the following were parameters
|
||||
int j = 15;
|
||||
int k = 20;
|
||||
int l = 15;
|
||||
int j1 = 256;
|
||||
int k1 = 20;
|
||||
// all of the previous were parameters
|
||||
try {
|
||||
int i2 = -k / 2;
|
||||
int j2 = -k1 / 2;
|
||||
int k2 = (int) (Math.sin(d) * 65536D);
|
||||
int l2 = (int) (Math.cos(d) * 65536D);
|
||||
k2 = k2 * j1 >> 8;
|
||||
l2 = l2 * j1 >> 8;
|
||||
int i3 = (l << 16) + j2 * k2 + i2 * l2;
|
||||
int j3 = (j << 16) + j2 * l2 - i2 * k2;
|
||||
int k3 = l1 + i * DrawingArea.width;
|
||||
for (i = 0; i < k1; i++) {
|
||||
int l3 = k3;
|
||||
int i4 = i3;
|
||||
int j4 = j3;
|
||||
for (l1 = -k; l1 < 0; l1++) {
|
||||
int k4 = pixels[(i4 >> 16) + (j4 >> 16) * width];
|
||||
if (k4 != 0) {
|
||||
DrawingArea.pixels[l3++] = k4;
|
||||
} else {
|
||||
l3++;
|
||||
}
|
||||
i4 += l2;
|
||||
j4 -= k2;
|
||||
}
|
||||
|
||||
i3 += k2;
|
||||
j3 += l2;
|
||||
k3 += DrawingArea.width;
|
||||
}
|
||||
|
||||
} catch (Exception _ex) {
|
||||
}
|
||||
}
|
||||
|
||||
public void method354(Background background, int i, int j) {
|
||||
j += anInt1442;
|
||||
i += anInt1443;
|
||||
int k = j + i * DrawingArea.width;
|
||||
int l = 0;
|
||||
int i1 = height;
|
||||
int j1 = width;
|
||||
int k1 = DrawingArea.width - j1;
|
||||
int l1 = 0;
|
||||
if (i < DrawingArea.topY) {
|
||||
int i2 = DrawingArea.topY - i;
|
||||
i1 -= i2;
|
||||
i = DrawingArea.topY;
|
||||
l += i2 * j1;
|
||||
k += i2 * DrawingArea.width;
|
||||
}
|
||||
if (i + i1 > DrawingArea.bottomY) {
|
||||
i1 -= i + i1 - DrawingArea.bottomY;
|
||||
}
|
||||
if (j < DrawingArea.topX) {
|
||||
int j2 = DrawingArea.topX - j;
|
||||
j1 -= j2;
|
||||
j = DrawingArea.topX;
|
||||
l += j2;
|
||||
k += j2;
|
||||
l1 += j2;
|
||||
k1 += j2;
|
||||
}
|
||||
if (j + j1 > DrawingArea.bottomX) {
|
||||
int k2 = j + j1 - DrawingArea.bottomX;
|
||||
j1 -= k2;
|
||||
l1 += k2;
|
||||
k1 += k2;
|
||||
}
|
||||
if (!(j1 <= 0 || i1 <= 0)) {
|
||||
method355(pixels, j1, background.aByteArray1450, i1, DrawingArea.pixels, 0, k1, k, l1, l);
|
||||
}
|
||||
}
|
||||
|
||||
private void method355(int ai[], int i, byte abyte0[], int j, int ai1[], int k, int l, int i1, int j1, int k1) {
|
||||
int l1 = -(i >> 2);
|
||||
i = -(i & 3);
|
||||
for (int j2 = -j; j2 < 0; j2++) {
|
||||
for (int k2 = l1; k2 < 0; k2++) {
|
||||
k = ai[k1++];
|
||||
if (k != 0 && abyte0[i1] == 0) {
|
||||
ai1[i1++] = k;
|
||||
} else {
|
||||
i1++;
|
||||
}
|
||||
k = ai[k1++];
|
||||
if (k != 0 && abyte0[i1] == 0) {
|
||||
ai1[i1++] = k;
|
||||
} else {
|
||||
i1++;
|
||||
}
|
||||
k = ai[k1++];
|
||||
if (k != 0 && abyte0[i1] == 0) {
|
||||
ai1[i1++] = k;
|
||||
} else {
|
||||
i1++;
|
||||
}
|
||||
k = ai[k1++];
|
||||
if (k != 0 && abyte0[i1] == 0) {
|
||||
ai1[i1++] = k;
|
||||
} else {
|
||||
i1++;
|
||||
}
|
||||
}
|
||||
|
||||
for (int l2 = i; l2 < 0; l2++) {
|
||||
k = ai[k1++];
|
||||
if (k != 0 && abyte0[i1] == 0) {
|
||||
ai1[i1++] = k;
|
||||
} else {
|
||||
i1++;
|
||||
}
|
||||
}
|
||||
|
||||
i1 += l;
|
||||
k1 += j1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int pixels[];
|
||||
public int width;
|
||||
public int height;
|
||||
private int anInt1442;
|
||||
private int anInt1443;
|
||||
public int trimWidth;
|
||||
public int trimHeight;
|
||||
}
|
||||
@@ -0,0 +1,336 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
import java.math.BigInteger;
|
||||
|
||||
public final class Stream extends NodeSub {
|
||||
|
||||
public static Stream create() {
|
||||
synchronized (nodeList) {
|
||||
Stream stream = null;
|
||||
if (anInt1412 > 0) {
|
||||
anInt1412--;
|
||||
stream = (Stream) nodeList.popHead();
|
||||
}
|
||||
if (stream != null) {
|
||||
stream.currentOffset = 0;
|
||||
return stream;
|
||||
}
|
||||
}
|
||||
Stream stream_1 = new Stream(null);
|
||||
stream_1.currentOffset = 0;
|
||||
stream_1.buffer = new byte[5000];
|
||||
return stream_1;
|
||||
}
|
||||
|
||||
public int method426() {
|
||||
return buffer[currentOffset++] - 128 & 0xff;
|
||||
}
|
||||
|
||||
public Stream(byte abyte0[]) {
|
||||
buffer = abyte0;
|
||||
currentOffset = 0;
|
||||
}
|
||||
|
||||
public void createFrame(int i) {
|
||||
buffer[currentOffset++] = (byte) (i + encryption.getNextKey());
|
||||
}
|
||||
|
||||
public void writeWordBigEndian(int i) {
|
||||
buffer[currentOffset++] = (byte) i;
|
||||
}
|
||||
|
||||
public void writeWord(int i) {
|
||||
buffer[currentOffset++] = (byte) (i >> 8);
|
||||
buffer[currentOffset++] = (byte) i;
|
||||
}
|
||||
|
||||
public void method400(int i) {
|
||||
buffer[currentOffset++] = (byte) i;
|
||||
buffer[currentOffset++] = (byte) (i >> 8);
|
||||
}
|
||||
|
||||
public void writeDWordBigEndian(int i) {
|
||||
buffer[currentOffset++] = (byte) (i >> 16);
|
||||
buffer[currentOffset++] = (byte) (i >> 8);
|
||||
buffer[currentOffset++] = (byte) i;
|
||||
}
|
||||
|
||||
public void writeDWord(int i) {
|
||||
buffer[currentOffset++] = (byte) (i >> 24);
|
||||
buffer[currentOffset++] = (byte) (i >> 16);
|
||||
buffer[currentOffset++] = (byte) (i >> 8);
|
||||
buffer[currentOffset++] = (byte) i;
|
||||
}
|
||||
|
||||
public void method403(int j) {
|
||||
buffer[currentOffset++] = (byte) j;
|
||||
buffer[currentOffset++] = (byte) (j >> 8);
|
||||
buffer[currentOffset++] = (byte) (j >> 16);
|
||||
buffer[currentOffset++] = (byte) (j >> 24);
|
||||
}
|
||||
|
||||
public void writeQWord(long l) {
|
||||
try {
|
||||
buffer[currentOffset++] = (byte) (int) (l >> 56);
|
||||
buffer[currentOffset++] = (byte) (int) (l >> 48);
|
||||
buffer[currentOffset++] = (byte) (int) (l >> 40);
|
||||
buffer[currentOffset++] = (byte) (int) (l >> 32);
|
||||
buffer[currentOffset++] = (byte) (int) (l >> 24);
|
||||
buffer[currentOffset++] = (byte) (int) (l >> 16);
|
||||
buffer[currentOffset++] = (byte) (int) (l >> 8);
|
||||
buffer[currentOffset++] = (byte) (int) l;
|
||||
} catch (RuntimeException runtimeexception) {
|
||||
Signlink.reporterror("14395, " + 5 + ", " + l + ", " + runtimeexception.toString());
|
||||
throw new RuntimeException();
|
||||
}
|
||||
}
|
||||
|
||||
public void writeString(String s) {
|
||||
// s.getBytes(0, s.length(), buffer, currentOffset); //deprecated
|
||||
System.arraycopy(s.getBytes(), 0, buffer, currentOffset, s.length());
|
||||
currentOffset += s.length();
|
||||
buffer[currentOffset++] = 10;
|
||||
}
|
||||
|
||||
public void writeBytes(byte abyte0[], int i, int j) {
|
||||
for (int k = j; k < j + i; k++) {
|
||||
buffer[currentOffset++] = abyte0[k];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void writeBytes(int i) {
|
||||
buffer[currentOffset - i - 1] = (byte) i;
|
||||
}
|
||||
|
||||
public int readUnsignedByte() {
|
||||
return buffer[currentOffset++] & 0xff;
|
||||
}
|
||||
|
||||
public byte readSignedByte() {
|
||||
return buffer[currentOffset++];
|
||||
}
|
||||
|
||||
public int readUnsignedWord() {
|
||||
currentOffset += 2;
|
||||
return ((buffer[currentOffset - 2] & 0xff) << 8) + (buffer[currentOffset - 1] & 0xff);
|
||||
}
|
||||
|
||||
public int readSignedWord() {
|
||||
currentOffset += 2;
|
||||
int i = ((buffer[currentOffset - 2] & 0xff) << 8) + (buffer[currentOffset - 1] & 0xff);
|
||||
if (i > 32767) {
|
||||
i -= 0x10000;
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
public int read3Bytes() {
|
||||
currentOffset += 3;
|
||||
return ((buffer[currentOffset - 3] & 0xff) << 16) + ((buffer[currentOffset - 2] & 0xff) << 8) + (buffer[currentOffset - 1] & 0xff);
|
||||
}
|
||||
|
||||
public int readDWord() {
|
||||
currentOffset += 4;
|
||||
return ((buffer[currentOffset - 4] & 0xff) << 24) + ((buffer[currentOffset - 3] & 0xff) << 16) + ((buffer[currentOffset - 2] & 0xff) << 8) + (buffer[currentOffset - 1] & 0xff);
|
||||
}
|
||||
|
||||
public long readQWord() {
|
||||
long l = readDWord() & 0xffffffffL;
|
||||
long l1 = readDWord() & 0xffffffffL;
|
||||
return (l << 32) + l1;
|
||||
}
|
||||
|
||||
public String readString() {
|
||||
int i = currentOffset;
|
||||
while (buffer[currentOffset++] != 10) {
|
||||
;
|
||||
}
|
||||
return new String(buffer, i, currentOffset - i - 1);
|
||||
}
|
||||
|
||||
public byte[] readBytes() {
|
||||
int i = currentOffset;
|
||||
while (buffer[currentOffset++] != 10) {
|
||||
;
|
||||
}
|
||||
byte abyte0[] = new byte[currentOffset - i - 1];
|
||||
System.arraycopy(buffer, i, abyte0, i - i, currentOffset - 1 - i);
|
||||
return abyte0;
|
||||
}
|
||||
|
||||
public void readBytes(int i, int j, byte abyte0[]) {
|
||||
for (int l = j; l < j + i; l++) {
|
||||
abyte0[l] = buffer[currentOffset++];
|
||||
}
|
||||
}
|
||||
|
||||
public void initBitAccess() {
|
||||
bitPosition = currentOffset * 8;
|
||||
}
|
||||
|
||||
public int readBits(int i) {
|
||||
int k = bitPosition >> 3;
|
||||
int l = 8 - (bitPosition & 7);
|
||||
int i1 = 0;
|
||||
bitPosition += i;
|
||||
for (; i > l; l = 8) {
|
||||
i1 += (buffer[k++] & anIntArray1409[l]) << i - l;
|
||||
i -= l;
|
||||
}
|
||||
if (i == l) {
|
||||
i1 += buffer[k] & anIntArray1409[l];
|
||||
} else {
|
||||
i1 += buffer[k] >> l - i & anIntArray1409[i];
|
||||
}
|
||||
return i1;
|
||||
}
|
||||
|
||||
public void finishBitAccess() {
|
||||
currentOffset = (bitPosition + 7) / 8;
|
||||
}
|
||||
|
||||
public int method421() {
|
||||
int i = buffer[currentOffset] & 0xff;
|
||||
if (i < 128) {
|
||||
return readUnsignedByte() - 64;
|
||||
} else {
|
||||
return readUnsignedWord() - 49152;
|
||||
}
|
||||
}
|
||||
|
||||
public int method422() {
|
||||
int i = buffer[currentOffset] & 0xff;
|
||||
if (i < 128) {
|
||||
return readUnsignedByte();
|
||||
} else {
|
||||
return readUnsignedWord() - 32768;
|
||||
}
|
||||
}
|
||||
|
||||
public void doKeys() {
|
||||
int i = currentOffset;
|
||||
currentOffset = 0;
|
||||
byte abyte0[] = new byte[i];
|
||||
readBytes(i, 0, abyte0);
|
||||
BigInteger biginteger2 = new BigInteger(abyte0);
|
||||
BigInteger biginteger3 = biginteger2.modPow(ClientSettings.RSA_EXPONENT, ClientSettings.RSA_MODULUS);
|
||||
byte abyte1[] = biginteger3.toByteArray();
|
||||
currentOffset = 0;
|
||||
writeWordBigEndian(abyte1.length);
|
||||
writeBytes(abyte1, abyte1.length, 0);
|
||||
}
|
||||
|
||||
|
||||
public void method424(int i) {
|
||||
buffer[currentOffset++] = (byte) -i;
|
||||
}
|
||||
|
||||
public void method425(int j) {
|
||||
buffer[currentOffset++] = (byte) (128 - j);
|
||||
}
|
||||
|
||||
public int readUnsignedByteA() {
|
||||
return buffer[currentOffset++] - 128 & 0xff;
|
||||
}
|
||||
|
||||
public int method427() {
|
||||
return -buffer[currentOffset++] & 0xff;
|
||||
}
|
||||
|
||||
public int method428() {
|
||||
return 128 - buffer[currentOffset++] & 0xff;
|
||||
}
|
||||
|
||||
public byte method429() {
|
||||
return (byte) -buffer[currentOffset++];
|
||||
}
|
||||
|
||||
public byte method430() {
|
||||
return (byte) (128 - buffer[currentOffset++]);
|
||||
}
|
||||
|
||||
public void method431(int i) {
|
||||
buffer[currentOffset++] = (byte) i;
|
||||
buffer[currentOffset++] = (byte) (i >> 8);
|
||||
}
|
||||
|
||||
public void method432(int j) {
|
||||
buffer[currentOffset++] = (byte) (j >> 8);
|
||||
buffer[currentOffset++] = (byte) (j + 128);
|
||||
}
|
||||
|
||||
public void method433(int j) {
|
||||
buffer[currentOffset++] = (byte) (j + 128);
|
||||
buffer[currentOffset++] = (byte) (j >> 8);
|
||||
}
|
||||
|
||||
public int method434() {
|
||||
currentOffset += 2;
|
||||
return ((buffer[currentOffset - 1] & 0xff) << 8) + (buffer[currentOffset - 2] & 0xff);
|
||||
}
|
||||
|
||||
public int method435() {
|
||||
currentOffset += 2;
|
||||
return ((buffer[currentOffset - 2] & 0xff) << 8) + (buffer[currentOffset - 1] - 128 & 0xff);
|
||||
}
|
||||
|
||||
public int method436() {
|
||||
currentOffset += 2;
|
||||
return ((buffer[currentOffset - 1] & 0xff) << 8) + (buffer[currentOffset - 2] - 128 & 0xff);
|
||||
}
|
||||
|
||||
public int method437() {
|
||||
currentOffset += 2;
|
||||
int j = ((buffer[currentOffset - 1] & 0xff) << 8) + (buffer[currentOffset - 2] & 0xff);
|
||||
if (j > 32767) {
|
||||
j -= 0x10000;
|
||||
}
|
||||
return j;
|
||||
}
|
||||
|
||||
public int method438() {
|
||||
currentOffset += 2;
|
||||
int j = ((buffer[currentOffset - 1] & 0xff) << 8) + (buffer[currentOffset - 2] - 128 & 0xff);
|
||||
if (j > 32767) {
|
||||
j -= 0x10000;
|
||||
}
|
||||
return j;
|
||||
}
|
||||
|
||||
public int method439() {
|
||||
currentOffset += 4;
|
||||
return ((buffer[currentOffset - 2] & 0xff) << 24) + ((buffer[currentOffset - 1] & 0xff) << 16) + ((buffer[currentOffset - 4] & 0xff) << 8) + (buffer[currentOffset - 3] & 0xff);
|
||||
}
|
||||
|
||||
public int method440() {
|
||||
currentOffset += 4;
|
||||
return ((buffer[currentOffset - 3] & 0xff) << 24) + ((buffer[currentOffset - 4] & 0xff) << 16) + ((buffer[currentOffset - 1] & 0xff) << 8) + (buffer[currentOffset - 2] & 0xff);
|
||||
}
|
||||
|
||||
public void method441(int i, byte abyte0[], int j) {
|
||||
for (int k = i + j - 1; k >= i; k--) {
|
||||
buffer[currentOffset++] = (byte) (abyte0[k] + 128);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void method442(int i, int j, byte abyte0[]) {
|
||||
for (int k = j + i - 1; k >= j; k--) {
|
||||
abyte0[k] = buffer[currentOffset++];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public byte buffer[];
|
||||
public int currentOffset;
|
||||
public int bitPosition;
|
||||
private static final int[] anIntArray1409 = {0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535, 0x1ffff, 0x3ffff, 0x7ffff, 0xfffff, 0x1fffff, 0x3fffff, 0x7fffff, 0xffffff, 0x1ffffff, 0x3ffffff, 0x7ffffff, 0xfffffff, 0x1fffffff, 0x3fffffff, 0x7fffffff, -1};
|
||||
public ISAACRandomGen encryption;
|
||||
private static int anInt1412;
|
||||
private static final NodeList nodeList = new NodeList();
|
||||
|
||||
// removed useless static initializer
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class StreamLoader {
|
||||
|
||||
public StreamLoader(byte abyte0[]) {
|
||||
Stream stream = new Stream(abyte0);
|
||||
int i = stream.read3Bytes();
|
||||
int j = stream.read3Bytes();
|
||||
if (j != i) {
|
||||
byte abyte1[] = new byte[i];
|
||||
Class13.method225(abyte1, i, abyte0, j, 6);
|
||||
aByteArray726 = abyte1;
|
||||
stream = new Stream(aByteArray726);
|
||||
aBoolean732 = true;
|
||||
} else {
|
||||
aByteArray726 = abyte0;
|
||||
aBoolean732 = false;
|
||||
}
|
||||
dataSize = stream.readUnsignedWord();
|
||||
anIntArray728 = new int[dataSize];
|
||||
anIntArray729 = new int[dataSize];
|
||||
anIntArray730 = new int[dataSize];
|
||||
anIntArray731 = new int[dataSize];
|
||||
int k = stream.currentOffset + dataSize * 10;
|
||||
for (int l = 0; l < dataSize; l++) {
|
||||
anIntArray728[l] = stream.readDWord();
|
||||
anIntArray729[l] = stream.read3Bytes();
|
||||
anIntArray730[l] = stream.read3Bytes();
|
||||
anIntArray731[l] = k;
|
||||
k += anIntArray730[l];
|
||||
}
|
||||
}
|
||||
|
||||
public byte[] getDataForName(String s) {
|
||||
byte abyte0[] = null; // was a parameter
|
||||
int i = 0;
|
||||
s = s.toUpperCase();
|
||||
for (int j = 0; j < s.length(); j++) {
|
||||
i = i * 61 + s.charAt(j) - 32;
|
||||
}
|
||||
|
||||
for (int k = 0; k < dataSize; k++) {
|
||||
if (anIntArray728[k] == i) {
|
||||
if (abyte0 == null) {
|
||||
abyte0 = new byte[anIntArray729[k]];
|
||||
}
|
||||
if (!aBoolean732) {
|
||||
Class13.method225(abyte0, anIntArray729[k], aByteArray726, anIntArray730[k], anIntArray731[k]);
|
||||
} else {
|
||||
System.arraycopy(aByteArray726, anIntArray731[k], abyte0, 0, anIntArray729[k]);
|
||||
|
||||
}
|
||||
return abyte0;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private final byte[] aByteArray726;
|
||||
private final int dataSize;
|
||||
private final int[] anIntArray728;
|
||||
private final int[] anIntArray729;
|
||||
private final int[] anIntArray730;
|
||||
private final int[] anIntArray731;
|
||||
private final boolean aBoolean732;
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class TextClass {
|
||||
|
||||
public static long longForName(String s) {
|
||||
long l = 0L;
|
||||
for (int i = 0; i < s.length() && i < 12; i++) {
|
||||
char c = s.charAt(i);
|
||||
l *= 37L;
|
||||
if (c >= 'A' && c <= 'Z') {
|
||||
l += 1 + c - 65;
|
||||
} else if (c >= 'a' && c <= 'z') {
|
||||
l += 1 + c - 97;
|
||||
} else if (c >= '0' && c <= '9') {
|
||||
l += 27 + c - 48;
|
||||
}
|
||||
}
|
||||
|
||||
for (; l % 37L == 0L && l != 0L; l /= 37L) {
|
||||
;
|
||||
}
|
||||
return l;
|
||||
}
|
||||
|
||||
public static String nameForLong(long l) {
|
||||
try {
|
||||
if (l <= 0L || l >= 0x5b5b57f8a98a5dd1L) {
|
||||
return "invalid_name";
|
||||
}
|
||||
if (l % 37L == 0L) {
|
||||
return "invalid_name";
|
||||
}
|
||||
int i = 0;
|
||||
char ac[] = new char[12];
|
||||
while (l != 0L) {
|
||||
long l1 = l;
|
||||
l /= 37L;
|
||||
ac[11 - i++] = validChars[(int) (l1 - l * 37L)];
|
||||
}
|
||||
return new String(ac, 12 - i, i);
|
||||
} catch (RuntimeException runtimeexception) {
|
||||
Signlink.reporterror("81570, " + l + ", " + (byte) -99 + ", " + runtimeexception.toString());
|
||||
}
|
||||
throw new RuntimeException();
|
||||
}
|
||||
|
||||
public static long method585(String s) {
|
||||
s = s.toUpperCase();
|
||||
long l = 0L;
|
||||
for (int i = 0; i < s.length(); i++) {
|
||||
l = l * 61L + s.charAt(i) - 32L;
|
||||
l = l + (l >> 56) & 0xffffffffffffffL;
|
||||
}
|
||||
return l;
|
||||
}
|
||||
|
||||
public static String method586(int i) {
|
||||
return (i >> 24 & 0xff) + "." + (i >> 16 & 0xff) + "." + (i >> 8 & 0xff) + "." + (i & 0xff);
|
||||
}
|
||||
|
||||
public static String fixName(String s) {
|
||||
if (s.length() > 0) {
|
||||
char ac[] = s.toCharArray();
|
||||
for (int j = 0; j < ac.length; j++) {
|
||||
if (ac[j] == '_') {
|
||||
ac[j] = ' ';
|
||||
if (j + 1 < ac.length && ac[j + 1] >= 'a' && ac[j + 1] <= 'z') {
|
||||
ac[j + 1] = (char) (ac[j + 1] + 65 - 97);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (ac[0] >= 'a' && ac[0] <= 'z') {
|
||||
ac[0] = (char) (ac[0] + 65 - 97);
|
||||
}
|
||||
return new String(ac);
|
||||
} else {
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
public static String passwordAsterisks(String s) {
|
||||
StringBuffer stringbuffer = new StringBuffer();
|
||||
for (int j = 0; j < s.length(); j++) {
|
||||
stringbuffer.append("*");
|
||||
}
|
||||
return stringbuffer.toString();
|
||||
}
|
||||
|
||||
private static final char[] validChars = {'_', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
|
||||
|
||||
}
|
||||
@@ -0,0 +1,447 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public final class TextDrawingArea extends DrawingArea {
|
||||
|
||||
public TextDrawingArea(boolean flag, String s, StreamLoader streamLoader) {
|
||||
aByteArrayArray1491 = new byte[256][];
|
||||
anIntArray1492 = new int[256];
|
||||
anIntArray1493 = new int[256];
|
||||
anIntArray1494 = new int[256];
|
||||
anIntArray1495 = new int[256];
|
||||
anIntArray1496 = new int[256];
|
||||
aRandom1498 = new Random();
|
||||
aBoolean1499 = false;
|
||||
Stream stream = new Stream(streamLoader.getDataForName(s + ".dat"));
|
||||
Stream stream_1 = new Stream(streamLoader.getDataForName("index.dat"));
|
||||
stream_1.currentOffset = stream.readUnsignedWord() + 4;
|
||||
int k = stream_1.readUnsignedByte();
|
||||
if (k > 0) {
|
||||
stream_1.currentOffset += 3 * (k - 1);
|
||||
}
|
||||
for (int l = 0; l < 256; l++) {
|
||||
anIntArray1494[l] = stream_1.readUnsignedByte();
|
||||
anIntArray1495[l] = stream_1.readUnsignedByte();
|
||||
int i1 = anIntArray1492[l] = stream_1.readUnsignedWord();
|
||||
int j1 = anIntArray1493[l] = stream_1.readUnsignedWord();
|
||||
int k1 = stream_1.readUnsignedByte();
|
||||
int l1 = i1 * j1;
|
||||
aByteArrayArray1491[l] = new byte[l1];
|
||||
if (k1 == 0) {
|
||||
for (int i2 = 0; i2 < l1; i2++) {
|
||||
aByteArrayArray1491[l][i2] = stream.readSignedByte();
|
||||
}
|
||||
|
||||
} else if (k1 == 1) {
|
||||
for (int j2 = 0; j2 < i1; j2++) {
|
||||
for (int l2 = 0; l2 < j1; l2++) {
|
||||
aByteArrayArray1491[l][j2 + l2 * i1] = stream.readSignedByte();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
if (j1 > anInt1497 && l < 128) {
|
||||
anInt1497 = j1;
|
||||
}
|
||||
anIntArray1494[l] = 1;
|
||||
anIntArray1496[l] = i1 + 2;
|
||||
int k2 = 0;
|
||||
for (int i3 = j1 / 7; i3 < j1; i3++) {
|
||||
k2 += aByteArrayArray1491[l][i3 * i1];
|
||||
}
|
||||
|
||||
if (k2 <= j1 / 7) {
|
||||
anIntArray1496[l]--;
|
||||
anIntArray1494[l] = 0;
|
||||
}
|
||||
k2 = 0;
|
||||
for (int j3 = j1 / 7; j3 < j1; j3++) {
|
||||
k2 += aByteArrayArray1491[l][i1 - 1 + j3 * i1];
|
||||
}
|
||||
|
||||
if (k2 <= j1 / 7) {
|
||||
anIntArray1496[l]--;
|
||||
}
|
||||
}
|
||||
|
||||
if (flag) {
|
||||
anIntArray1496[32] = anIntArray1496[73];
|
||||
} else {
|
||||
anIntArray1496[32] = anIntArray1496[105];
|
||||
}
|
||||
}
|
||||
|
||||
public void method380(String s, int i, int j, int k) {
|
||||
method385(j, s, k, i - method384(s));
|
||||
}
|
||||
|
||||
public void drawText(int i, String s, int k, int l) {
|
||||
method385(i, s, k, l - method384(s) / 2);
|
||||
}
|
||||
|
||||
public void method382(int i, int j, String s, int l, boolean flag) {
|
||||
method389(flag, j - getTextWidth(s) / 2, i, s, l);
|
||||
}
|
||||
|
||||
public int getTextWidth(String s) {
|
||||
if (s == null) {
|
||||
return 0;
|
||||
}
|
||||
int j = 0;
|
||||
for (int k = 0; k < s.length(); k++) {
|
||||
if (s.charAt(k) == '@' && k + 4 < s.length() && s.charAt(k + 4) == '@') {
|
||||
k += 4;
|
||||
} else {
|
||||
j += anIntArray1496[s.charAt(k)];
|
||||
}
|
||||
}
|
||||
|
||||
return j;
|
||||
}
|
||||
|
||||
public int method384(String s) {
|
||||
if (s == null) {
|
||||
return 0;
|
||||
}
|
||||
int j = 0;
|
||||
for (int k = 0; k < s.length(); k++) {
|
||||
j += anIntArray1496[s.charAt(k)];
|
||||
}
|
||||
return j;
|
||||
}
|
||||
|
||||
public void method385(int i, String s, int j, int l) {
|
||||
if (s == null) {
|
||||
return;
|
||||
}
|
||||
j -= anInt1497;
|
||||
for (int i1 = 0; i1 < s.length(); i1++) {
|
||||
char c = s.charAt(i1);
|
||||
if (c != ' ') {
|
||||
method392(aByteArrayArray1491[c], l + anIntArray1494[c], j + anIntArray1495[c], anIntArray1492[c], anIntArray1493[c], i);
|
||||
}
|
||||
l += anIntArray1496[c];
|
||||
}
|
||||
}
|
||||
|
||||
public void method386(int i, String s, int j, int k, int l) {
|
||||
if (s == null) {
|
||||
return;
|
||||
}
|
||||
j -= method384(s) / 2;
|
||||
l -= anInt1497;
|
||||
for (int i1 = 0; i1 < s.length(); i1++) {
|
||||
char c = s.charAt(i1);
|
||||
if (c != ' ') {
|
||||
method392(aByteArrayArray1491[c], j + anIntArray1494[c], l + anIntArray1495[c] + (int) (Math.sin(i1 / 2D + k / 5D) * 5D), anIntArray1492[c], anIntArray1493[c], i);
|
||||
}
|
||||
j += anIntArray1496[c];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void method387(int i, String s, int j, int k, int l) {
|
||||
if (s == null) {
|
||||
return;
|
||||
}
|
||||
i -= method384(s) / 2;
|
||||
k -= anInt1497;
|
||||
for (int i1 = 0; i1 < s.length(); i1++) {
|
||||
char c = s.charAt(i1);
|
||||
if (c != ' ') {
|
||||
method392(aByteArrayArray1491[c], i + anIntArray1494[c] + (int) (Math.sin(i1 / 5D + j / 5D) * 5D), k + anIntArray1495[c] + (int) (Math.sin(i1 / 3D + j / 5D) * 5D), anIntArray1492[c], anIntArray1493[c], l);
|
||||
}
|
||||
i += anIntArray1496[c];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void method388(int i, String s, int j, int k, int l, int i1) {
|
||||
if (s == null) {
|
||||
return;
|
||||
}
|
||||
double d = 7D - i / 8D;
|
||||
if (d < 0.0D) {
|
||||
d = 0.0D;
|
||||
}
|
||||
l -= method384(s) / 2;
|
||||
k -= anInt1497;
|
||||
for (int k1 = 0; k1 < s.length(); k1++) {
|
||||
char c = s.charAt(k1);
|
||||
if (c != ' ') {
|
||||
method392(aByteArrayArray1491[c], l + anIntArray1494[c], k + anIntArray1495[c] + (int) (Math.sin(k1 / 1.5D + j) * d), anIntArray1492[c], anIntArray1493[c], i1);
|
||||
}
|
||||
l += anIntArray1496[c];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void method389(boolean flag1, int i, int j, String s, int k) {
|
||||
aBoolean1499 = false;
|
||||
int l = i;
|
||||
if (s == null) {
|
||||
return;
|
||||
}
|
||||
k -= anInt1497;
|
||||
for (int i1 = 0; i1 < s.length(); i1++) {
|
||||
if (s.charAt(i1) == '@' && i1 + 4 < s.length() && s.charAt(i1 + 4) == '@') {
|
||||
int j1 = getColorByName(s.substring(i1 + 1, i1 + 4));
|
||||
if (j1 != -1) {
|
||||
j = j1;
|
||||
}
|
||||
i1 += 4;
|
||||
} else {
|
||||
char c = s.charAt(i1);
|
||||
if (c != ' ') {
|
||||
if (flag1) {
|
||||
method392(aByteArrayArray1491[c], i + anIntArray1494[c] + 1, k + anIntArray1495[c] + 1, anIntArray1492[c], anIntArray1493[c], 0);
|
||||
}
|
||||
try {
|
||||
method392(aByteArrayArray1491[c], i + anIntArray1494[c], k + anIntArray1495[c], anIntArray1492[c], anIntArray1493[c], j);
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
}
|
||||
i += anIntArray1496[c];
|
||||
}
|
||||
}
|
||||
if (aBoolean1499) {
|
||||
DrawingArea.method339(k + (int) (anInt1497 * 0.69999999999999996D), 0x800000, i - l, l);
|
||||
}
|
||||
}
|
||||
|
||||
public void method390(int i, int j, String s, int k, int i1) {
|
||||
if (s == null) {
|
||||
return;
|
||||
}
|
||||
aRandom1498.setSeed(k);
|
||||
int j1 = 192 + (aRandom1498.nextInt() & 0x1f);
|
||||
i1 -= anInt1497;
|
||||
for (int k1 = 0; k1 < s.length(); k1++) {
|
||||
if (s.charAt(k1) == '@' && k1 + 4 < s.length() && s.charAt(k1 + 4) == '@') {
|
||||
int l1 = getColorByName(s.substring(k1 + 1, k1 + 4));
|
||||
if (l1 != -1) {
|
||||
j = l1;
|
||||
}
|
||||
k1 += 4;
|
||||
} else {
|
||||
char c = s.charAt(k1);
|
||||
if (c != ' ') {
|
||||
method394(192, i + anIntArray1494[c] + 1, aByteArrayArray1491[c], anIntArray1492[c], i1 + anIntArray1495[c] + 1, anIntArray1493[c], 0);
|
||||
method394(j1, i + anIntArray1494[c], aByteArrayArray1491[c], anIntArray1492[c], i1 + anIntArray1495[c], anIntArray1493[c], j);
|
||||
}
|
||||
i += anIntArray1496[c];
|
||||
if ((aRandom1498.nextInt() & 3) == 0) {
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private int getColorByName(String s) {
|
||||
if (s.equals("red")) {
|
||||
return 0xff0000;
|
||||
}
|
||||
if (s.equals("gre")) {
|
||||
return 65280;
|
||||
}
|
||||
if (s.equals("blu")) {
|
||||
return 255;
|
||||
}
|
||||
if (s.equals("yel")) {
|
||||
return 0xffff00;
|
||||
}
|
||||
if (s.equals("cya")) {
|
||||
return 65535;
|
||||
}
|
||||
if (s.equals("mag")) {
|
||||
return 0xff00ff;
|
||||
}
|
||||
if (s.equals("whi")) {
|
||||
return 0xffffff;
|
||||
}
|
||||
if (s.equals("bla")) {
|
||||
return 0;
|
||||
}
|
||||
if (s.equals("lre")) {
|
||||
return 0xff9040;
|
||||
}
|
||||
if (s.equals("dre")) {
|
||||
return 0x800000;
|
||||
}
|
||||
if (s.equals("dbl")) {
|
||||
return 128;
|
||||
}
|
||||
if (s.equals("or1")) {
|
||||
return 0xffb000;
|
||||
}
|
||||
if (s.equals("or2")) {
|
||||
return 0xff7000;
|
||||
}
|
||||
if (s.equals("or3")) {
|
||||
return 0xff3000;
|
||||
}
|
||||
if (s.equals("gr1")) {
|
||||
return 0xc0ff00;
|
||||
}
|
||||
if (s.equals("gr2")) {
|
||||
return 0x80ff00;
|
||||
}
|
||||
if (s.equals("gr3")) {
|
||||
return 0x40ff00;
|
||||
}
|
||||
if (s.equals("str")) {
|
||||
aBoolean1499 = true;
|
||||
}
|
||||
if (s.equals("end")) {
|
||||
aBoolean1499 = false;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
private void method392(byte abyte0[], int i, int j, int k, int l, int i1) {
|
||||
int j1 = i + j * DrawingArea.width;
|
||||
int k1 = DrawingArea.width - k;
|
||||
int l1 = 0;
|
||||
int i2 = 0;
|
||||
if (j < DrawingArea.topY) {
|
||||
int j2 = DrawingArea.topY - j;
|
||||
l -= j2;
|
||||
j = DrawingArea.topY;
|
||||
i2 += j2 * k;
|
||||
j1 += j2 * DrawingArea.width;
|
||||
}
|
||||
if (j + l >= DrawingArea.bottomY) {
|
||||
l -= j + l - DrawingArea.bottomY + 1;
|
||||
}
|
||||
if (i < DrawingArea.topX) {
|
||||
int k2 = DrawingArea.topX - i;
|
||||
k -= k2;
|
||||
i = DrawingArea.topX;
|
||||
i2 += k2;
|
||||
j1 += k2;
|
||||
l1 += k2;
|
||||
k1 += k2;
|
||||
}
|
||||
if (i + k >= DrawingArea.bottomX) {
|
||||
int l2 = i + k - DrawingArea.bottomX + 1;
|
||||
k -= l2;
|
||||
l1 += l2;
|
||||
k1 += l2;
|
||||
}
|
||||
if (!(k <= 0 || l <= 0)) {
|
||||
method393(DrawingArea.pixels, abyte0, i1, i2, j1, k, l, k1, l1);
|
||||
}
|
||||
}
|
||||
|
||||
private void method393(int ai[], byte abyte0[], int i, int j, int k, int l, int i1, int j1, int k1) {
|
||||
int l1 = -(l >> 2);
|
||||
l = -(l & 3);
|
||||
for (int i2 = -i1; i2 < 0; i2++) {
|
||||
for (int j2 = l1; j2 < 0; j2++) {
|
||||
if (abyte0[j++] != 0) {
|
||||
ai[k++] = i;
|
||||
} else {
|
||||
k++;
|
||||
}
|
||||
if (abyte0[j++] != 0) {
|
||||
ai[k++] = i;
|
||||
} else {
|
||||
k++;
|
||||
}
|
||||
if (abyte0[j++] != 0) {
|
||||
ai[k++] = i;
|
||||
} else {
|
||||
k++;
|
||||
}
|
||||
if (abyte0[j++] != 0) {
|
||||
ai[k++] = i;
|
||||
} else {
|
||||
k++;
|
||||
}
|
||||
}
|
||||
|
||||
for (int k2 = l; k2 < 0; k2++) {
|
||||
if (abyte0[j++] != 0) {
|
||||
ai[k++] = i;
|
||||
} else {
|
||||
k++;
|
||||
}
|
||||
}
|
||||
|
||||
k += j1;
|
||||
j += k1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void method394(int i, int j, byte abyte0[], int k, int l, int i1, int j1) {
|
||||
int k1 = j + l * DrawingArea.width;
|
||||
int l1 = DrawingArea.width - k;
|
||||
int i2 = 0;
|
||||
int j2 = 0;
|
||||
if (l < DrawingArea.topY) {
|
||||
int k2 = DrawingArea.topY - l;
|
||||
i1 -= k2;
|
||||
l = DrawingArea.topY;
|
||||
j2 += k2 * k;
|
||||
k1 += k2 * DrawingArea.width;
|
||||
}
|
||||
if (l + i1 >= DrawingArea.bottomY) {
|
||||
i1 -= l + i1 - DrawingArea.bottomY + 1;
|
||||
}
|
||||
if (j < DrawingArea.topX) {
|
||||
int l2 = DrawingArea.topX - j;
|
||||
k -= l2;
|
||||
j = DrawingArea.topX;
|
||||
j2 += l2;
|
||||
k1 += l2;
|
||||
i2 += l2;
|
||||
l1 += l2;
|
||||
}
|
||||
if (j + k >= DrawingArea.bottomX) {
|
||||
int i3 = j + k - DrawingArea.bottomX + 1;
|
||||
k -= i3;
|
||||
i2 += i3;
|
||||
l1 += i3;
|
||||
}
|
||||
if (k <= 0 || i1 <= 0) {
|
||||
return;
|
||||
}
|
||||
method395(abyte0, i1, k1, DrawingArea.pixels, j2, k, i2, l1, j1, i);
|
||||
}
|
||||
|
||||
private void method395(byte abyte0[], int i, int j, int ai[], int l, int i1, int j1, int k1, int l1, int i2) {
|
||||
l1 = ((l1 & 0xff00ff) * i2 & 0xff00ff00) + ((l1 & 0xff00) * i2 & 0xff0000) >> 8;
|
||||
i2 = 256 - i2;
|
||||
for (int j2 = -i; j2 < 0; j2++) {
|
||||
for (int k2 = -i1; k2 < 0; k2++) {
|
||||
if (abyte0[l++] != 0) {
|
||||
int l2 = ai[j];
|
||||
ai[j++] = (((l2 & 0xff00ff) * i2 & 0xff00ff00) + ((l2 & 0xff00) * i2 & 0xff0000) >> 8) + l1;
|
||||
} else {
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
||||
j += k1;
|
||||
l += j1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private final byte[][] aByteArrayArray1491;
|
||||
private final int[] anIntArray1492;
|
||||
private final int[] anIntArray1493;
|
||||
private final int[] anIntArray1494;
|
||||
private final int[] anIntArray1495;
|
||||
private final int[] anIntArray1496;
|
||||
public int anInt1497;
|
||||
private final Random aRandom1498;
|
||||
private boolean aBoolean1499;
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
final class TextInput {
|
||||
|
||||
public static String method525(int i, Stream stream) {
|
||||
int j = 0;
|
||||
int k = -1;
|
||||
for (int l = 0; l < i; l++) {
|
||||
int i1 = stream.readUnsignedByte();
|
||||
int j1 = i1 >> 4 & 0xf;
|
||||
if (k == -1) {
|
||||
if (j1 < 13) {
|
||||
aCharArray631[j++] = validChars[j1];
|
||||
} else {
|
||||
k = j1;
|
||||
}
|
||||
} else {
|
||||
aCharArray631[j++] = validChars[(k << 4) + j1 - 195];
|
||||
k = -1;
|
||||
}
|
||||
j1 = i1 & 0xf;
|
||||
if (k == -1) {
|
||||
if (j1 < 13) {
|
||||
aCharArray631[j++] = validChars[j1];
|
||||
} else {
|
||||
k = j1;
|
||||
}
|
||||
} else {
|
||||
aCharArray631[j++] = validChars[(k << 4) + j1 - 195];
|
||||
k = -1;
|
||||
}
|
||||
}
|
||||
|
||||
boolean flag1 = true;
|
||||
for (int k1 = 0; k1 < j; k1++) {
|
||||
char c = aCharArray631[k1];
|
||||
if (flag1 && c >= 'a' && c <= 'z') {
|
||||
aCharArray631[k1] += '\uFFE0';
|
||||
flag1 = false;
|
||||
}
|
||||
if (c == '.' || c == '!' || c == '?') {
|
||||
flag1 = true;
|
||||
}
|
||||
}
|
||||
return new String(aCharArray631, 0, j);
|
||||
}
|
||||
|
||||
public static void method526(String s, Stream stream) {
|
||||
if (s.length() > 80) {
|
||||
s = s.substring(0, 80);
|
||||
}
|
||||
s = s.toLowerCase();
|
||||
int i = -1;
|
||||
for (int j = 0; j < s.length(); j++) {
|
||||
char c = s.charAt(j);
|
||||
int k = 0;
|
||||
for (int l = 0; l < validChars.length; l++) {
|
||||
if (c != validChars[l]) {
|
||||
continue;
|
||||
}
|
||||
k = l;
|
||||
break;
|
||||
}
|
||||
|
||||
if (k > 12) {
|
||||
k += 195;
|
||||
}
|
||||
if (i == -1) {
|
||||
if (k < 13) {
|
||||
i = k;
|
||||
} else {
|
||||
stream.writeWordBigEndian(k);
|
||||
}
|
||||
} else if (k < 13) {
|
||||
stream.writeWordBigEndian((i << 4) + k);
|
||||
i = -1;
|
||||
} else {
|
||||
stream.writeWordBigEndian((i << 4) + (k >> 4));
|
||||
i = k & 0xf;
|
||||
}
|
||||
}
|
||||
if (i != -1) {
|
||||
stream.writeWordBigEndian(i << 4);
|
||||
}
|
||||
}
|
||||
|
||||
public static String processText(String s) {
|
||||
stream.currentOffset = 0;
|
||||
method526(s, stream);
|
||||
int j = stream.currentOffset;
|
||||
stream.currentOffset = 0;
|
||||
String s1 = method525(j, stream);
|
||||
return s1;
|
||||
}
|
||||
|
||||
private static final char[] aCharArray631 = new char[100];
|
||||
private static final Stream stream = new Stream(new byte[100]);
|
||||
private static final char[] validChars = {' ', 'e', 't', 'a', 'o', 'i', 'h', 'n', 's', 'r', 'd', 'l', 'u', 'm', 'w', 'c', 'y', 'f', 'g', 'p', 'b', 'v', 'k', 'x', 'j', 'q', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ' ', '!', '?', '.', ',', ':', ';', '(', ')', '-', '&', '*', '\\', '\'', '@', '#', '+', '=', '\243', '$', '%', '"', '[', ']'};
|
||||
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,61 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public final class VarBit {
|
||||
|
||||
public static void unpackConfig(StreamLoader streamLoader) {
|
||||
Stream stream = new Stream(streamLoader.getDataForName("varbit.dat"));
|
||||
int cacheSize = stream.readUnsignedWord();
|
||||
if (cache == null) {
|
||||
cache = new VarBit[cacheSize];
|
||||
}
|
||||
for (int j = 0; j < cacheSize; j++) {
|
||||
if (cache[j] == null) {
|
||||
cache[j] = new VarBit();
|
||||
}
|
||||
cache[j].readValues(stream);
|
||||
if (cache[j].aBoolean651) {
|
||||
Varp.cache[cache[j].anInt648].aBoolean713 = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (stream.currentOffset != stream.buffer.length) {
|
||||
System.out.println("varbit load mismatch");
|
||||
}
|
||||
}
|
||||
|
||||
private void readValues(Stream stream) {
|
||||
do {
|
||||
int j = stream.readUnsignedByte();
|
||||
if (j == 0) {
|
||||
return;
|
||||
}
|
||||
if (j == 1) {
|
||||
anInt648 = stream.readUnsignedWord();
|
||||
anInt649 = stream.readUnsignedByte();
|
||||
anInt650 = stream.readUnsignedByte();
|
||||
} else if (j == 10) {
|
||||
stream.readString();
|
||||
} else if (j == 2) {
|
||||
aBoolean651 = true;
|
||||
} else if (j == 3) {
|
||||
stream.readDWord();
|
||||
} else if (j == 4) {
|
||||
stream.readDWord();
|
||||
} else {
|
||||
System.out.println("Error unrecognised config code: " + j);
|
||||
}
|
||||
} while (true);
|
||||
}
|
||||
|
||||
private VarBit() {
|
||||
aBoolean651 = false;
|
||||
}
|
||||
|
||||
public static VarBit cache[];
|
||||
public int anInt648;
|
||||
public int anInt649;
|
||||
public int anInt650;
|
||||
private boolean aBoolean651;
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
|
||||
// Jad home page: http://www.kpdus.com/jad.html
|
||||
// Decompiler options: packimports(3)
|
||||
|
||||
public final class Varp {
|
||||
|
||||
public static void unpackConfig(StreamLoader streamLoader) {
|
||||
Stream stream = new Stream(streamLoader.getDataForName("varp.dat"));
|
||||
anInt702 = 0;
|
||||
int cacheSize = stream.readUnsignedWord();
|
||||
if (cache == null) {
|
||||
cache = new Varp[cacheSize];
|
||||
}
|
||||
if (anIntArray703 == null) {
|
||||
anIntArray703 = new int[cacheSize];
|
||||
}
|
||||
for (int j = 0; j < cacheSize; j++) {
|
||||
if (cache[j] == null) {
|
||||
cache[j] = new Varp();
|
||||
}
|
||||
cache[j].readValues(stream, j);
|
||||
}
|
||||
if (stream.currentOffset != stream.buffer.length) {
|
||||
System.out.println("varptype load mismatch");
|
||||
}
|
||||
}
|
||||
|
||||
private void readValues(Stream stream, int i) {
|
||||
do {
|
||||
int j = stream.readUnsignedByte();
|
||||
if (j == 0) {
|
||||
return;
|
||||
}
|
||||
if (j == 1) {
|
||||
stream.readUnsignedByte();
|
||||
} else if (j == 2) {
|
||||
stream.readUnsignedByte();
|
||||
} else if (j == 3) {
|
||||
anIntArray703[anInt702++] = i;
|
||||
} else if (j == 4) {
|
||||
} else if (j == 5) {
|
||||
anInt709 = stream.readUnsignedWord();
|
||||
} else if (j == 6) {
|
||||
} else if (j == 7) {
|
||||
stream.readDWord();
|
||||
} else if (j == 8) {
|
||||
aBoolean713 = true;
|
||||
} else if (j == 10) {
|
||||
stream.readString();
|
||||
} else if (j == 11) {
|
||||
aBoolean713 = true;
|
||||
} else if (j == 12) {
|
||||
stream.readDWord();
|
||||
} else if (j == 13) {
|
||||
} else {
|
||||
System.out.println("Error unrecognised config code: " + j);
|
||||
}
|
||||
} while (true);
|
||||
}
|
||||
|
||||
private Varp() {
|
||||
aBoolean713 = false;
|
||||
}
|
||||
|
||||
public static Varp cache[];
|
||||
private static int anInt702;
|
||||
private static int[] anIntArray703;
|
||||
public int anInt709;
|
||||
public boolean aBoolean713;
|
||||
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user