public void startUp()
{
drawLoadingText(32, "Starting up");
new CacheDownloader(this).downloadCache();
if(signlink.sunjava)
super.minDelay = 5;
aBoolean993 = true;
boolean flag = true;
String s = getDocumentBaseHost();
if(signlink.cache_dat != null) {
for(int i = 0; i < 5; i++)
decompressors[i] = new Decompressor(signlink.cache_dat, signlink.cache_idx[i], i + 1);
toggles1();
toggles2();
UserLoader.loaduser();
UserLoader.finalload();
drawLoadingText(32, "Starting up");
//setNewMaps();
if(signlink.sunjava)
super.minDelay = 5;
if(aBoolean993)
{
// rsAlreadyLoaded = true;
// return;
}
aBoolean993 = true;
//boolean flag = true;
//String s = getDocumentBaseHost();
}
try {
titleStreamLoader = streamLoaderForName(1, "title screen", "title", expectedCRCs[1], 25);
smallText = new TextDrawingArea(false, "p11_full", titleStreamLoader);
aTextDrawingArea_1271 = new TextDrawingArea(false, "p12_full", titleStreamLoader);
chatTextDrawingArea = new TextDrawingArea(false, "b12_full", titleStreamLoader);
TextDrawingArea aTextDrawingArea_1273 = new TextDrawingArea(true, "q8_full", titleStreamLoader);
drawLogo();
loadTitleScreen();
StreamLoader streamLoader = streamLoaderForName(2, "config", "config", expectedCRCs[2], 30);
StreamLoader streamLoader_1 = streamLoaderForName(3, "interface", "interface", expectedCRCs[3], 35);
StreamLoader streamLoader_2 = streamLoaderForName(4, "2d graphics", "media", expectedCRCs[4], 40);
StreamLoader streamLoader_3 = streamLoaderForName(6, "textures", "textures", expectedCRCs[6], 45);
StreamLoader streamLoader_4 = streamLoaderForName(7, "chat system", "wordenc", expectedCRCs[7], 50);
StreamLoader streamLoader_5 = streamLoaderForName(8, "sound effects", "sounds", expectedCRCs[8], 55);
byteGroundArray = new byte[4][104][104];
intGroundArray = new int[4][105][105];
worldController = new WorldController(intGroundArray);
for(int j = 0; j < 4; j++)
aClass11Array1230[j] = new Class11();
aClass30_Sub2_Sub1_Sub1_1263 = new Sprite(512, 512);
StreamLoader streamLoader_6 = streamLoaderForName(5, "update list", "versionlist", expectedCRCs[5], 60);
drawLoadingText(48, "Connecting to update server");
onDemandFetcher = new OnDemandFetcher();
onDemandFetcher.start(streamLoader_6, this);
Class36.method528(onDemandFetcher.getAnimCount());
Model.method459(onDemandFetcher.getVersionCount(0) , onDemandFetcher);
ModelDecompressor.loadModels();
ModelDecompressor.loadModels2();
ModelDecompressor.loadModels3();
preloadModels();
if(!lowMem)
{
nextSong = 0;
try
{
nextSong = Integer.parseInt(getParameter("music"));
}
catch(Exception _ex) { }
songChanging = true;
onDemandFetcher.method558(2, nextSong);
while(onDemandFetcher.getNodeCount() > 0)
{
processOnDemandQueue();
try
{
Thread.sleep(100L);
}
catch(Exception _ex) { }
if(onDemandFetcher.anInt1349 > 3)
{
loadError();
return;
}
}
}
drawLoadingText(64, "Requesting animations");
int k = onDemandFetcher.getVersionCount(1);
for(int i1 = 0; i1 < k; i1++)
onDemandFetcher.method558(1, i1);
while(onDemandFetcher.getNodeCount() > 0)
{
int j1 = k - onDemandFetcher.getNodeCount();
if(j1 > 0)
drawLoadingText(64, "Loading animations - " + (j1 * 100) / k + "%");
processOnDemandQueue();
try
{
Thread.sleep(100L);
}
catch(Exception _ex) { }
if(onDemandFetcher.anInt1349 > 3)
{
loadError();
return;
}
}
drawLoadingText(80, "Requesting models");
k = onDemandFetcher.getVersionCount(0);
for(int k1 = 0; k1 < k; k1++)
{
int l1 = onDemandFetcher.getModelIndex(k1);
if((l1 & 1) != 0)
onDemandFetcher.method558(0, k1);
}
k = onDemandFetcher.getNodeCount();
while(onDemandFetcher.getNodeCount() > 0)
{
int i2 = k - onDemandFetcher.getNodeCount();
if(i2 > 0)
drawLoadingText(80, "Loading models - " + (i2 * 100) / k + "%");
processOnDemandQueue();
try
{
Thread.sleep(100L);
}
catch(Exception _ex) { }
}
if(decompressors[0] != null)
{
drawLoadingText(96, "Requesting maps");
onDemandFetcher.method558(3, onDemandFetcher.method562(0, 48, 47));
onDemandFetcher.method558(3, onDemandFetcher.method562(1, 48, 47));
onDemandFetcher.method558(3, onDemandFetcher.method562(0, 48, 48));
onDemandFetcher.method558(3, onDemandFetcher.method562(1, 48, 48));
onDemandFetcher.method558(3, onDemandFetcher.method562(0, 48, 49));
onDemandFetcher.method558(3, onDemandFetcher.method562(1, 48, 49));
onDemandFetcher.method558(3, onDemandFetcher.method562(0, 47, 47));
onDemandFetcher.method558(3, onDemandFetcher.method562(1, 47, 47));
onDemandFetcher.method558(3, onDemandFetcher.method562(0, 47, 48));
onDemandFetcher.method558(3, onDemandFetcher.method562(1, 47, 48));
onDemandFetcher.method558(3, onDemandFetcher.method562(0, 148, 48));
onDemandFetcher.method558(3, onDemandFetcher.method562(1, 148, 48));
k = onDemandFetcher.getNodeCount();
while(onDemandFetcher.getNodeCount() > 0)
{
int j2 = k - onDemandFetcher.getNodeCount();
if(j2 > 0)
drawLoadingText(96, "Loading maps - " + (j2 * 100) / k + "%");
processOnDemandQueue();
try
{
Thread.sleep(100L);
}
catch(Exception _ex) { }
}
}
k = onDemandFetcher.getVersionCount(0);
for(int k2 = 0; k2 < k; k2++)
{
int l2 = onDemandFetcher.getModelIndex(k2);
byte byte0 = 0;
if((l2 & 8) != 0)
byte0 = 10;
else
if((l2 & 0x20) != 0)
byte0 = 9;
else
if((l2 & 0x10) != 0)
byte0 = 8;
else
if((l2 & 0x40) != 0)
byte0 = 7;
else
if((l2 & 0x80) != 0)
byte0 = 6;
else
if((l2 & 2) != 0)
byte0 = 5;
else
if((l2 & 4) != 0)
byte0 = 4;
if((l2 & 1) != 0)
byte0 = 3;
if(byte0 != 0)
onDemandFetcher.method563(byte0, 0, k2);
}
onDemandFetcher.method554(isMembers);
if(!lowMem)
{
int l = onDemandFetcher.getVersionCount(2);
for(int i3 = 1; i3 < l; i3++)
if(onDemandFetcher.method569(i3))
onDemandFetcher.method563((byte)1, 2, i3);
}
//Model.NPC();
drawLoadingText(112, "Unpacking media");
/* Custom sprite unpacking */
CustomMapback = new Sprite("Gameframe/MAPBACK 1");
Welcome = new Sprite("Login/WELCOME");
emptyOrb = new Sprite("Orbs/emptyOrb");
hoverOrb = new Sprite("Orbs/hoverorb");
hoverorbrun2 = new Sprite("Orbs/hoverorbrun2");
hoverorbrun = new Sprite("Orbs/hoverorbrun");
runClick = new Sprite("Orbs/runclick");
runorb = new Sprite("Orbs/runorb");
hitPointsFill = new Sprite("Orbs/hitpointsfill");
prayerFill = new Sprite("Orbs/prayerfill");
HPBarFull = new Sprite(sign.signlink.findcachedir() + "Data/Sprites/HITPOINTS_0.PNG", 1);
HPBarEmpty = new Sprite(sign.signlink.findcachedir() + "Data/Sprites/HITPOINTS_1.PNG", 1);
chatArea = new Sprite("Gameframe/chatarea");
tabArea = new Sprite("Tabarea/tabarea");
ORBS[1] = new Sprite("Orbs/ORBS 1");
ORBS[2] = new Sprite("Orbs/ORBS 2");
ORBS[3] = new Sprite("Orbs/ORBS 3");
ORBS[4] = new Sprite("Orbs/ORBS 4");
ORBS[5] = new Sprite("Orbs/ORBS 5");
ORBS[6] = new Sprite("Orbs/ORBS 6");
ORBS[7] = new Sprite("Orbs/ORBS 7");
ORBS[8] = new Sprite("Orbs/ORBS 8");
ORBS[9] = new Sprite("Orbs/ORBS 9");
ORBS[10] = new Sprite("Orbs/ORBS 10");
ORBS[11] = new Sprite("Orbs/ORBS 11");
ORBS[12] = new Sprite("Orbs/ORBS 12");
ORBS[13] = new Sprite("Orbs/ORBS 13");
ORBS[14] = new Sprite("Orbs/ORBS 14");
LOGOUT[0] = new Sprite("Orbs/X 0");
LOGOUT[1] = new Sprite("Orbs/X 1");
LOGOUT[2] = new Sprite("Orbs/X 2");
tabHover = new Sprite("Tabarea/tabhover");
tabClicked = new Sprite("Tabarea/tabclicked");
for (int i = 0; i <= 2; i++) {
globe[i] = new Sprite("Gameframe/Globe "+i+"");
}
for(int nSI = 0; nSI <= 14; nSI++)
newSideIcons[nSI] = new Sprite("Tabarea/icon "+nSI);
mapArea = new Sprite("maparea");
multiOverlay = new Sprite(streamLoader_2, "overlay_multiway", 0);
/**/
//signlink.musicSr.stop();
mapBack = new Background(streamLoader_2, "mapback", 0);
for(int c1 = 0; c1 <= 3; c1++)
chatButtons[c1] = new Sprite(streamLoader_2, "chatbuttons", c1);
for(int j3 = 0; j3 <= 14; j3++)
sideIcons[j3] = new Sprite(streamLoader_2, "sideicons", j3);
for(int r1 = 0; r1 < 5; r1++)
redStones[r1] = new Sprite("redstones " + r1);
compass = new Sprite(streamLoader_2, "compass", 0);
mapEdge = new Sprite(streamLoader_2, "mapedge", 0);
mapEdge.method345();
try
{
for(int k3 = 0; k3 < 100; k3++)
mapScenes[k3] = new Background(streamLoader_2, "mapscene", k3);
}
catch(Exception _ex) { }
try
{
for(int l3 = 0; l3 < 100; l3++)
mapFunctions[l3] = new Sprite(streamLoader_2, "mapfunction", l3);
}
catch(Exception _ex) { }
try
{
for(int i4 = 0; i4 < 20; i4++)
hitMarks[i4] = new Sprite(streamLoader_2, "hitmarks", i4);
}
catch(Exception _ex) { }
try
{
for(int h1 = 0; h1 < 6; h1++)
headIconsHint[h1] = new Sprite(streamLoader_2, "headicons_hint", h1);
} catch(Exception _ex) { }
try {
for(int j4 = 0; j4 < 8; j4++)
headIcons[j4] = new Sprite(streamLoader_2, "headicons_prayer", j4);
for(int j45 = 0; j45 < 3; j45++)
skullIcons[j45] = new Sprite(streamLoader_2, "headicons_pk", j45 );
}
catch(Exception _ex) { }
mapFlag = new Sprite(streamLoader_2, "mapmarker", 0);
mapMarker = new Sprite(streamLoader_2, "mapmarker", 1);
for(int k4 = 0; k4 < 8; k4++)
crosses[k4] = new Sprite(streamLoader_2, "cross", k4);
mapDotItem = new Sprite(streamLoader_2, "mapdots", 0);
mapDotNPC = new Sprite(streamLoader_2, "mapdots", 1);
mapDotPlayer = new Sprite(streamLoader_2, "mapdots", 2);
mapDotFriend = new Sprite(streamLoader_2, "mapdots", 3);
mapDotTeam = new Sprite(streamLoader_2, "mapdots", 4);
mapDotClan = new Sprite(streamLoader_2, "mapdots", 5);
scrollBar1 = new Sprite(streamLoader_2, "scrollbar", 0);
scrollBar2 = new Sprite(streamLoader_2, "scrollbar", 1);
for(int l4 = 0; l4 < 2; l4++)
modIcons[l4] = new Background(streamLoader_2, "mod_icons", l4);
Sprite sprite = new Sprite(streamLoader_2, "screenframe", 0);
leftFrame = new RSImageProducer(sprite.myWidth, sprite.myHeight, getGameComponent());
sprite.method346(0, 0);
sprite = new Sprite(streamLoader_2, "screenframe", 1);
topFrame = new RSImageProducer(sprite.myWidth, sprite.myHeight, getGameComponent());
sprite.method346(0, 0);
sprite = new Sprite(streamLoader_2, "screenframe", 2);
rightFrame = new RSImageProducer(sprite.myWidth, sprite.myHeight, getGameComponent());
sprite.method346(0, 0);
sprite = new Sprite(streamLoader_2, "mapedge", 0);
mapEdgeIP = new RSImageProducer(sprite.myWidth, sprite.myHeight, getGameComponent());
sprite.method346(0, 0);
int i5 = (int)(Math.random() * 21D) - 10;
int j5 = (int)(Math.random() * 21D) - 10;
int k5 = (int)(Math.random() * 21D) - 10;
int l5 = (int)(Math.random() * 41D) - 20;
for(int i6 = 0; i6 < 100; i6++)
{
if(mapFunctions[i6] != null)
mapFunctions[i6].method344(i5 + l5, j5 + l5, k5 + l5);
if(mapScenes[i6] != null)
mapScenes[i6].method360(i5 + l5, j5 + l5, k5 + l5);
}
drawLoadingText(128, "Unpacking textures");
Texture.method368(streamLoader_3);
Texture.method372(0.80000000000000004D);
Texture.method367();
drawLoadingText(144, "Unpacking config");
Animation.unpackConfig(streamLoader);
ObjectDef.unpackConfig(streamLoader);
Flo.unpackConfig(streamLoader);
ItemDef.unpackConfig(streamLoader);
EntityDef.unpackConfig(streamLoader);
IDK.unpackConfig(streamLoader);
SpotAnim.unpackConfig(streamLoader);
Varp.unpackConfig(streamLoader);
VarBit.unpackConfig(streamLoader);
ItemDef.isMembers = isMembers;
if(!lowMem)
{
drawLoadingText(160, "Unpacking sounds");
byte abyte0[] = streamLoader_5.getDataForName("sounds.dat");
Stream stream = new Stream(abyte0);
Sounds.unpack(stream);
}
drawLoadingText(176, "Unpacking interfaces");
TextDrawingArea aclass30_sub2_sub1_sub4s[] = {
smallText, aTextDrawingArea_1271, chatTextDrawingArea, aTextDrawingArea_1273
};
RSInterface.unpack(streamLoader_1, aclass30_sub2_sub1_sub4s, streamLoader_2);
drawLoadingText(194, "Preparing game engine");
for(int j6 = 0; j6 < 33; j6++)
{
int k6 = 999;
int i7 = 0;
for(int k7 = 0; k7 < 34; k7++)
{
if(mapBack.aByteArray1450[k7 + j6 * mapBack.anInt1452] == 0)
{
if(k6 == 999)
k6 = k7;
continue;
}
if(k6 == 999)
continue;
i7 = k7;
break;
}
anIntArray968[j6] = k6;
anIntArray1057[j6] = i7 - k6;
}
for (int l6 = 1; l6 < 153; l6++) {//map posi
int j7 = 999;
int l7 = -6;
for (int j8 = 24; j8 < 182; j8++) {
if (mapBack.aByteArray1450[j8 + l6 * mapBack.anInt1452] == 0 && (j8 > 36 || l6 > 36)) {
if (j7 == 999) {
j7 = j8;
}
continue;
}
if (j7 == 999) {
continue;
}
l7 = j8;
break;
}
anIntArray1052[l6 - 1] = j7 - 29;
anIntArray1229[l6 - 1] = l7 - j7;
}
Texture.method365(765, 503);
fullScreenTextureArray = Texture.anIntArray1472;
Texture.method365(519, 165);
anIntArray1180 = Texture.anIntArray1472;
Texture.method365(246, 335);
anIntArray1181 = Texture.anIntArray1472;
Texture.method365(512, 334);
anIntArray1182 = Texture.anIntArray1472;
int ai[] = new int[9];
for(int i8 = 0; i8 < 9; i8++)
{
int k8 = 128 + i8 * 32 + 15;
int l8 = 600 + k8 * 3;
int i9 = Texture.anIntArray1470[k8];
ai[i8] = l8 * i9 >> 16;
}
WorldController.method310(500, 800, 512, 334, ai);
Censor.loadConfig(streamLoader_4);
mouseDetection = new MouseDetection(this);
startRunnable(mouseDetection, 10);
Animable_Sub5.clientInstance = this;
ObjectDef.clientInstance = this;
EntityDef.clientInstance = this;
return;
}
catch(Exception exception)
{
signlink.reporterror("loaderror " + aString1049 + " " + anInt1079);
}
loadingError = true;
}