Skip to content

Commit 8b450ea

Browse files
committed
refactor: rename and move InteractiveObjectTemporary statics
1 parent 12363e6 commit 8b450ea

File tree

4 files changed

+296
-316
lines changed

4 files changed

+296
-316
lines changed

src/main/java/org/runejs/client/Game.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2086,10 +2086,10 @@ public void processGameLoop() {
20862086
MouseHandler.method1015();
20872087

20882088
if (gameStatusCode == 0) {
2089-
InteractiveObjectTemporary.startup();
2089+
MovedStatics.startup();
20902090
method992();
20912091
} else if (gameStatusCode == 5) {
2092-
InteractiveObjectTemporary.startup();
2092+
MovedStatics.startup();
20932093
method992();
20942094
} else if (gameStatusCode == 10) {
20952095
Class60.updateLogin();

src/main/java/org/runejs/client/MovedStatics.java

Lines changed: 258 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.runejs.client;
22

33
import org.runejs.client.cache.CacheIndex;
4+
import org.runejs.client.cache.media.AnimationSequence;
45
import org.runejs.client.cache.media.ImageRGB;
56
import org.runejs.client.cache.media.gameInterface.GameInterface;
67
import org.runejs.client.cache.media.gameInterface.GameInterfaceArea;
@@ -10,6 +11,7 @@
1011
import org.runejs.client.frame.Minimap;
1112
import org.runejs.client.frame.ScreenController;
1213
import org.runejs.client.frame.ScreenMode;
14+
import org.runejs.client.frame.console.Console;
1315
import org.runejs.client.frame.tab.parts.TabParts;
1416
import org.runejs.client.input.MouseHandler;
1517
import org.runejs.client.io.Buffer;
@@ -30,6 +32,7 @@
3032
import org.runejs.client.media.renderable.Renderable;
3133
import org.runejs.client.scene.*;
3234
import org.runejs.client.scene.camera.CameraRotation;
35+
import org.runejs.client.scene.util.CollisionMap;
3336
import org.runejs.client.sound.MusicSystem;
3437
import org.runejs.client.sound.SoundSystem;
3538
import org.runejs.client.util.BitUtils;
@@ -3357,4 +3360,259 @@ public static boolean method596(int arg0, int arg1, byte junk, int arg3) {
33573360
crossIndex = 0;
33583361
return true;
33593362
}
3363+
3364+
public static void startup() {
3365+
if (loadingPercent == 0) {
3366+
Game.currentScene = new Scene(Landscape.tile_height);
3367+
for (int i = 0; i < 4; i++)
3368+
Landscape.currentCollisionMap[i] = new CollisionMap(104, 104);
3369+
Minimap.minimapImage = new ImageRGB(512, 512);
3370+
anInt1607 = 5;
3371+
loadingPercent = 20;
3372+
Native.currentLoadingText = English.startingGameEngine;
3373+
} else if (loadingPercent == 20) {
3374+
// int[] is = new int[9];
3375+
// for (int i = 0; i < 9; i++) {
3376+
// int i_0_ = 15 + 32 * i + 128;
3377+
// int i_1_ = 3 * i_0_ + 600;
3378+
// int i_2_ = Rasterizer3D.sinetable[i_0_];
3379+
// is[i] = i_2_ * i_1_ >> 16;
3380+
// }
3381+
// Scene.method95(500, 800, 512, 334, is);
3382+
ScreenController.setBounds();
3383+
anInt1607 = 10;
3384+
Native.currentLoadingText = English.preparedVisibilityMap;
3385+
loadingPercent = 30;
3386+
} else if (loadingPercent == 30) {
3387+
CacheArchive.skeletonCacheArchive = CacheArchive.loadArchive(0, true, false, true);
3388+
CacheArchive.skinDefinitionCacheArchive = CacheArchive.loadArchive(1, true, false, true);
3389+
CacheArchive.gameDefinitionsCacheArchive = CacheArchive.loadArchive(2, true, true, false);
3390+
CacheArchive.gameInterfaceCacheArchive = CacheArchive.loadArchive(3, true, false, true);
3391+
CacheArchive.soundEffectCacheArchive = CacheArchive.loadArchive(4, true, false, true);
3392+
CacheArchive.gameWorldMapCacheArchive = CacheArchive.loadArchive(5, true, true, true);
3393+
CacheArchive.musicCacheArchive = CacheArchive.loadArchive(6, false, true, true);
3394+
CacheArchive.modelCacheArchive = CacheArchive.loadArchive(7, true, false, true);
3395+
CacheArchive.gameImageCacheArchive = CacheArchive.loadArchive(8, true, false, true);
3396+
CacheArchive.gameTextureCacheArchive = CacheArchive.loadArchive(9, true, false, true);
3397+
CacheArchive.huffmanCacheArchive = CacheArchive.loadArchive(10, true, false, true);
3398+
CacheArchive.jingleCacheArchive = CacheArchive.loadArchive(11, true, false, true);
3399+
CacheArchive.clientScriptCacheArchive = CacheArchive.loadArchive(12, true, false, true);
3400+
loadingPercent = 40;
3401+
Native.currentLoadingText = English.connectingToUpdateServer;
3402+
anInt1607 = 20;
3403+
} else if (loadingPercent == 40) {
3404+
int i = 0;
3405+
i += CacheArchive.skeletonCacheArchive.getPercentLoaded() * 5 / 100;
3406+
i += 5 * CacheArchive.skinDefinitionCacheArchive.getPercentLoaded() / 100;
3407+
i += 5 * CacheArchive.gameDefinitionsCacheArchive.getPercentLoaded() / 100;
3408+
i += 5 * CacheArchive.gameInterfaceCacheArchive.getPercentLoaded() / 100;
3409+
i += 5 * CacheArchive.soundEffectCacheArchive.getPercentLoaded() / 100;
3410+
i += 5 * CacheArchive.gameWorldMapCacheArchive.getPercentLoaded() / 100;
3411+
i += CacheArchive.musicCacheArchive.getPercentLoaded() * 5 / 100;
3412+
i += 40 * CacheArchive.modelCacheArchive.getPercentLoaded() / 100;
3413+
i += CacheArchive.gameImageCacheArchive.getPercentLoaded() * 5 / 100;
3414+
i += CacheArchive.gameTextureCacheArchive.getPercentLoaded() * 5 / 100;
3415+
i += 5 * CacheArchive.huffmanCacheArchive.getPercentLoaded() / 100;
3416+
i += 5 * CacheArchive.jingleCacheArchive.getPercentLoaded() / 100;
3417+
i += 5 * CacheArchive.clientScriptCacheArchive.getPercentLoaded() / 100;
3418+
if (i == 100) {
3419+
loadingPercent = 45;
3420+
Native.currentLoadingText = English.loadedUpdateList;
3421+
anInt1607 = 30;
3422+
} else {
3423+
if (i != 0)
3424+
Native.currentLoadingText = English.checkingForUpdates + i + Native.percent;
3425+
anInt1607 = 30;
3426+
}
3427+
} else if (loadingPercent == 45) {
3428+
MusicSystem.initialiseMusic(0);
3429+
SoundSystem.initialiseSound(Game.signlink);
3430+
loadingPercent = 50;
3431+
Native.currentLoadingText = English.preparedSoundEngine;
3432+
anInt1607 = 35;
3433+
} else if (loadingPercent == 50) {
3434+
int i = 0;
3435+
if (TypeFace.fontSmall != null)
3436+
i++;
3437+
else
3438+
TypeFace.fontSmall = TypeFace.loadTypeFace(CacheArchive.gameImageCacheArchive, "", Native.fontP11Full);
3439+
if (fontNormal != null)
3440+
i++;
3441+
else
3442+
fontNormal = TypeFace.loadTypeFace(CacheArchive.gameImageCacheArchive, "", Native.fontP12Full);
3443+
if (TypeFace.fontBold != null)
3444+
i++;
3445+
else
3446+
TypeFace.fontBold = TypeFace.loadTypeFace(CacheArchive.gameImageCacheArchive, "", Native.fontB12Full);
3447+
if (i < 3) {
3448+
Native.currentLoadingText = English.loadingFonts + (i * 100 / 3) + Native.percent;
3449+
anInt1607 = 40;
3450+
} else {
3451+
loadingPercent = 60;
3452+
anInt1607 = 40;
3453+
Native.currentLoadingText = English.loadedFonts;
3454+
}
3455+
} else if (loadingPercent == 60) {
3456+
int i = method988(CacheArchive.huffmanCacheArchive, CacheArchive.gameImageCacheArchive);
3457+
int i_3_ = 5;
3458+
if (i < 5) {
3459+
Native.currentLoadingText = English.loadingTitleScreen + (100 * i / 5) + Native.percent;
3460+
anInt1607 = 50;
3461+
} else {
3462+
org.runejs.client.frame.console.Console.console = new Console();
3463+
Native.currentLoadingText = English.loadedTitleScreen;
3464+
anInt1607 = 50;
3465+
processGameStatus(5);
3466+
loadingPercent = 70;
3467+
}
3468+
} else if (loadingPercent == 70) {
3469+
if (CacheArchive.gameDefinitionsCacheArchive.method185()) {
3470+
OverlayDefinition.initializeOverlayDefinitionCache(CacheArchive.gameDefinitionsCacheArchive);
3471+
UnderlayDefinition.initializeUnderlayDefinitionCache(CacheArchive.gameDefinitionsCacheArchive);
3472+
IdentityKit.initializeIdentityKitDefinitionCache(CacheArchive.gameDefinitionsCacheArchive, CacheArchive.modelCacheArchive);
3473+
GameObjectDefinition.initializeGameObjectDefinitionCache(CacheArchive.modelCacheArchive, VertexNormal.lowMemory, CacheArchive.gameDefinitionsCacheArchive);
3474+
ActorDefinition.initializeActorCache(CacheArchive.modelCacheArchive, CacheArchive.gameDefinitionsCacheArchive);
3475+
ItemDefinition.initializeItemDefinitionCache(CacheArchive.gameDefinitionsCacheArchive, membersWorld, CacheArchive.modelCacheArchive);
3476+
AnimationSequence.initializeAnimationCaches(CacheArchive.skinDefinitionCacheArchive, CacheArchive.gameDefinitionsCacheArchive, CacheArchive.skeletonCacheArchive);
3477+
SpotAnimDefinition.initializeSpotAnimCache(CacheArchive.modelCacheArchive, CacheArchive.gameDefinitionsCacheArchive);
3478+
VarbitDefinition.initializeVarbitDefinitionCache(CacheArchive.gameDefinitionsCacheArchive);
3479+
VarPlayerDefinition.initializeVarPlayerDefinitionCache(CacheArchive.gameDefinitionsCacheArchive);
3480+
GameInterface.createInterfaceMemoryBuffers();
3481+
loadingPercent = 80;
3482+
anInt1607 = 60;
3483+
Native.currentLoadingText = English.loadedConfig;
3484+
} else {
3485+
Native.currentLoadingText = English.loadingConfig + CacheArchive.gameDefinitionsCacheArchive.method202() + Native.percent;
3486+
anInt1607 = 60;
3487+
}
3488+
} else if (loadingPercent == 80) {
3489+
int i = 0;
3490+
if (Minimap.minimapCompass != null)
3491+
i++;
3492+
else
3493+
Minimap.minimapCompass = method1028(CacheArchive.gameImageCacheArchive, Native.compass, "");
3494+
if (minimapEdge == null)
3495+
minimapEdge = method1028(CacheArchive.gameImageCacheArchive, Native.mapEdge, "");
3496+
else
3497+
i++;
3498+
if (mapSceneIcons != null)
3499+
i++;
3500+
else
3501+
mapSceneIcons = IndexedImage.getMultipleIndexedImages(CacheArchive.gameImageCacheArchive, Native.mapScene, "");
3502+
if (Minimap.mapFunctionIcons == null)
3503+
Minimap.mapFunctionIcons = ImageRGB.method526(CacheArchive.gameImageCacheArchive, Native.mapFunction, "");
3504+
else
3505+
i++;
3506+
if (aClass40_Sub5_Sub14_Sub4Array2474 != null)
3507+
i++;
3508+
else
3509+
aClass40_Sub5_Sub14_Sub4Array2474 = ImageRGB.method526(CacheArchive.gameImageCacheArchive, Native.hitmarks, "");
3510+
if (aClass40_Sub5_Sub14_Sub4Array603 == null)
3511+
aClass40_Sub5_Sub14_Sub4Array603 = ImageRGB.method526(CacheArchive.gameImageCacheArchive, Native.headiconsPK, "");
3512+
else
3513+
i++;
3514+
if (headIconSprites != null)
3515+
i++;
3516+
else
3517+
headIconSprites = ImageRGB.method526(CacheArchive.gameImageCacheArchive, Native.headiconsPrayer, "");
3518+
if (hintIconSprites == null)
3519+
hintIconSprites = ImageRGB.method526(CacheArchive.gameImageCacheArchive, Native.headiconsHint, "");
3520+
else
3521+
i++;
3522+
if (multiCombatIcon == null)
3523+
multiCombatIcon = method1028(CacheArchive.gameImageCacheArchive, Native.overlayMultiway, "");
3524+
else
3525+
i++;
3526+
if (Minimap.minimapMarkers == null)
3527+
Minimap.minimapMarkers = ImageRGB.method526(CacheArchive.gameImageCacheArchive, Native.mapMarker, "");
3528+
else
3529+
i++;
3530+
if (cursorCross != null)
3531+
i++;
3532+
else
3533+
cursorCross = ImageRGB.method526(CacheArchive.gameImageCacheArchive, Native.cursorCross, "");
3534+
if (Minimap.mapDots == null)
3535+
Minimap.mapDots = ImageRGB.method526(CacheArchive.gameImageCacheArchive, Native.mapDots, "");
3536+
else
3537+
i++;
3538+
if (scrollbarArrowImages == null)
3539+
scrollbarArrowImages = IndexedImage.getMultipleIndexedImages(CacheArchive.gameImageCacheArchive, Native.scrollbar, "");
3540+
else
3541+
i++;
3542+
if (moderatorIcon != null)
3543+
i++;
3544+
else
3545+
moderatorIcon = IndexedImage.getMultipleIndexedImages(CacheArchive.gameImageCacheArchive, Native.modIcons, "");
3546+
if (i < 14) {
3547+
Native.currentLoadingText = English.loadingSprites + (100 * i / 14) + Native.percent;
3548+
anInt1607 = 70;
3549+
} else {
3550+
minimapEdge.trim();
3551+
int i_4_ = (int) (Math.random() * 21.0) - 10;
3552+
int i_5_ = (int) (21.0 * Math.random()) - 10;
3553+
int i_6_ = (int) (41.0 * Math.random()) - 20;
3554+
int i_7_ = -10 + (int) (21.0 * Math.random());
3555+
for (int i_8_ = 0; Minimap.mapFunctionIcons.length > i_8_; i_8_++)
3556+
Minimap.mapFunctionIcons[i_8_].method717(i_6_ + i_4_, i_5_ + i_6_, i_7_ + i_6_);
3557+
mapSceneIcons[0].mixPalette(i_4_ + i_6_, i_5_ + i_6_, i_6_ + i_7_);
3558+
Native.currentLoadingText = English.loadedSprites;
3559+
anInt1607 = 70;
3560+
loadingPercent = 85;
3561+
}
3562+
} else if (loadingPercent == 85) {
3563+
int i = method955(CacheArchive.gameImageCacheArchive);
3564+
if (i < 19) {
3565+
Native.currentLoadingText = English.loadingGameScreen + (i * 100 / 19) + Native.percent;
3566+
anInt1607 = 80;
3567+
} else {
3568+
Native.currentLoadingText = English.loadedGamescreen;
3569+
loadingPercent = 90;
3570+
anInt1607 = 80;
3571+
}
3572+
} else if (loadingPercent == 90) {
3573+
if (CacheArchive.gameTextureCacheArchive.method185()) {
3574+
Class35 class35 = new Class35(CacheArchive.gameTextureCacheArchive, CacheArchive.gameImageCacheArchive, 20, 0.8, !VertexNormal.lowMemory ? 128 : 64);
3575+
Rasterizer3D.method703(class35);
3576+
Rasterizer3D.createPalette(0.8);
3577+
loadingPercent = 110;
3578+
anInt1607 = 90;
3579+
Native.currentLoadingText = English.loadedTextures;
3580+
} else {
3581+
Native.currentLoadingText = English.loadingTextures + CacheArchive.gameTextureCacheArchive.method202() + Native.percent;
3582+
anInt1607 = 90;
3583+
}
3584+
} else if (loadingPercent == 110) {
3585+
Game.mouseCapturer = new MouseCapturer();
3586+
Game.signlink.createThreadNode(10, Game.mouseCapturer);
3587+
Native.currentLoadingText = English.loadedInputHandler;
3588+
loadingPercent = 120;
3589+
anInt1607 = 94;
3590+
} else if (loadingPercent == 120) {
3591+
if (CacheArchive.huffmanCacheArchive.method194(Native.huffman, "")) {
3592+
HuffmanEncoding huffmanEncoding = new HuffmanEncoding(CacheArchive.huffmanCacheArchive.method170("", Native.huffman));
3593+
method778(huffmanEncoding);
3594+
loadingPercent = 130;
3595+
Native.currentLoadingText = English.loadedWordpack;
3596+
anInt1607 = 96;
3597+
} else {
3598+
Native.currentLoadingText = English.loadingWordPack + Native.zeroPercent;
3599+
anInt1607 = 96;
3600+
}
3601+
} else if (loadingPercent == 130) {
3602+
if (!CacheArchive.gameInterfaceCacheArchive.method185()) {
3603+
Native.currentLoadingText = English.loadingInterfaces + (4 * CacheArchive.gameInterfaceCacheArchive.method202() / 5) + Native.percent;
3604+
anInt1607 = 100;
3605+
} else if (CacheArchive.clientScriptCacheArchive.method185()) {
3606+
Native.currentLoadingText = English.loadedInterfaces;
3607+
loadingPercent = 140;
3608+
anInt1607 = 100;
3609+
} else {
3610+
Native.currentLoadingText = English.loadingInterfaces + (80 + CacheArchive.clientScriptCacheArchive.method202() / 5) + Native.percent;
3611+
anInt1607 = 100;
3612+
}
3613+
} else {
3614+
if (loadingPercent == 140)
3615+
processGameStatus(10);
3616+
}
3617+
}
33603618
}

src/main/java/org/runejs/client/cache/media/ImageRGB.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22

33
import org.runejs.client.MovedStatics;
44
import org.runejs.client.cache.CacheArchive;
5+
import org.runejs.client.io.Buffer;
56
import org.runejs.client.media.Rasterizer;
7+
import org.runejs.client.media.renderable.actor.Npc;
8+
import org.runejs.client.util.BitUtils;
69

710
import java.awt.*;
811
import java.awt.image.PixelGrabber;
@@ -240,6 +243,39 @@ public static boolean spriteExists(int arg0, int arg1, CacheArchive cacheArchive
240243
return true;
241244
}
242245

246+
public static ImageRGB[] method319() {
247+
ImageRGB[] class40_sub5_sub14_sub4s = new ImageRGB[MovedStatics.anInt2581];
248+
for(int i = 0; i < MovedStatics.anInt2581; i++) {
249+
ImageRGB class40_sub5_sub14_sub4 = class40_sub5_sub14_sub4s[i] = new ImageRGB();
250+
class40_sub5_sub14_sub4.maxWidth = MovedStatics.imageMaxWidth;
251+
class40_sub5_sub14_sub4.maxHeight = MovedStatics.imageMaxHeight;
252+
class40_sub5_sub14_sub4.offsetX = MovedStatics.anIntArray1347[i];
253+
class40_sub5_sub14_sub4.offsetY = MovedStatics.anIntArray3111[i];
254+
class40_sub5_sub14_sub4.imageWidth = MovedStatics.anIntArray456[i];
255+
class40_sub5_sub14_sub4.imageHeight = Npc.anIntArray3312[i];
256+
byte[] is = MovedStatics.aByteArrayArray1370[i];
257+
int i_4_ = class40_sub5_sub14_sub4.imageHeight * class40_sub5_sub14_sub4.imageWidth;
258+
class40_sub5_sub14_sub4.pixels = new int[i_4_];
259+
for(int i_5_ = 0; i_5_ < i_4_; i_5_++)
260+
class40_sub5_sub14_sub4.pixels[i_5_] = Buffer.anIntArray1972[BitUtils.bitWiseAND(255, is[i_5_])];
261+
}
262+
MovedStatics.method569();
263+
return class40_sub5_sub14_sub4s;
264+
}
265+
266+
public static ImageRGB[] method944(byte arg0, int arg1, CacheArchive arg2, int arg3) {
267+
if(!spriteExists(arg3, arg1, arg2))
268+
return null;
269+
int i = -59 % ((-60 - arg0) / 34);
270+
return method319();
271+
}
272+
273+
public static ImageRGB[] method526(CacheArchive arg0, String arg2, String arg3) {
274+
int i = arg0.getHash(arg2);
275+
int i_4_ = arg0.method179(i, arg3);
276+
return method944((byte) -3, i, arg0, i_4_);
277+
}
278+
243279
public void method716(int arg0, int arg1, int arg2, int arg3, int arg4) {
244280
if(arg2 > 0 && arg3 > 0) {
245281
int i = imageWidth;

0 commit comments

Comments
 (0)