145 lines
4.7 KiB
Java
Executable File
145 lines
4.7 KiB
Java
Executable File
package rs;
|
|
|
|
import rs.stream.Stream;// 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 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;
|
|
|
|
}
|