-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathRadicalMod.java
115 lines (104 loc) · 2.88 KB
/
RadicalMod.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import fallk.logmaster.HLogger;
import sun.audio.AudioPlayer;
import java.applet.Applet;
import java.io.ByteArrayInputStream;
import java.net.URL;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class RadicalMod {
private SuperClip sClip;
private byte modf[];
private boolean playing;
public int loaded;
public void stop() {
if (playing && loaded == 2) {
sClip.stop();
playing = false;
}
}
public RadicalMod(String s, Applet applet) {
playing = false;
loaded = 0;
loaded = 1;
try {
URL url = new URL(applet.getCodeBase(), s);
ZipInputStream zipinputstream = new ZipInputStream(url.openStream());
ZipEntry zipentry = zipinputstream.getNextEntry();
int i = (int) zipentry.getSize();
modf = new byte[i];
int j = 0;
int k;
for (; i > 0; i -= k) {
k = zipinputstream.read(modf, j, i);
j += k;
}
} catch (Exception exception) {
HLogger.error("Error loading Mod from zip file: " + exception);
loaded = 0;
}
}
public void resume() {
if (!playing && loaded == 2) {
sClip.resume();
if (sClip.stoped == 0) {
playing = true;
}
}
}
void unloadAll() {
if (playing && loaded == 2) {
sClip.stop();
}
try {
sClip.close();
sClip = null;
} catch (Exception _ex) {
}
try {
modf = null;
} catch (Exception _ex) {
}
System.gc();
}
public void play() {
if (!playing && loaded == 2) {
sClip.play();
if (sClip.stoped == 0) {
playing = true;
}
}
}
void unloadMod() {
if (loaded == 2) {
if (playing) {
sClip.stop();
playing = false;
}
try {
sClip.close();
sClip = null;
} catch (Exception _ex) {
}
System.gc();
loaded = 1;
}
}
public void loadMod(int i, int j, int k) {
if (loaded == 1) {
loaded = 2;
int l = 22000;
j = (int) ((j / 8000F) * 2.0F * l);
Mod mod = new Mod(new ByteArrayInputStream(modf));
ModSlayer modslayer = new ModSlayer(mod, j, i, k);
try {
byte abyte0[] = modslayer.turnbytesNorm();
sClip = new SuperClip(abyte0, modslayer.oln, l);
} catch (Exception exception) {
HLogger.error("Error making a Mod: " + exception);
loaded = 0;
}
System.runFinalization();
System.gc();
}
}
}