Files
runelite/runescape-client/src/main/java/HealthBar.java
ThatGamerBlue 655106b9df chore: rev 190
2020-06-18 12:15:38 +01:00

769 lines
28 KiB
Java

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import net.runelite.mapping.Export;
import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("ck")
@Implements("HealthBar")
public class HealthBar extends Node {
@ObfuscatedName("p")
@ObfuscatedSignature(
signature = "Llh;"
)
@Export("titleboxSprite")
static IndexedSprite titleboxSprite;
@ObfuscatedName("q")
@ObfuscatedSignature(
signature = "Lik;"
)
@Export("definition")
HealthBarDefinition definition;
@ObfuscatedName("j")
@ObfuscatedSignature(
signature = "Ljx;"
)
@Export("updates")
IterableNodeDeque updates;
@ObfuscatedSignature(
signature = "(Lik;)V"
)
HealthBar(HealthBarDefinition var1) {
this.updates = new IterableNodeDeque();
this.definition = var1;
}
@ObfuscatedName("m")
@ObfuscatedSignature(
signature = "(IIIIB)V",
garbageValue = "-61"
)
@Export("put")
void put(int var1, int var2, int var3, int var4) {
HealthBarUpdate var5 = null;
int var6 = 0;
for (HealthBarUpdate var7 = (HealthBarUpdate)this.updates.last(); var7 != null; var7 = (HealthBarUpdate)this.updates.previous()) {
++var6;
if (var7.cycle == var1) {
var7.set(var1, var2, var3, var4);
return;
}
if (var7.cycle <= var1) {
var5 = var7;
}
}
if (var5 == null) {
if (var6 < 4) {
this.updates.addLast(new HealthBarUpdate(var1, var2, var3, var4));
}
} else {
IterableNodeDeque.IterableNodeDeque_addBefore(new HealthBarUpdate(var1, var2, var3, var4), var5);
if (var6 >= 4) {
this.updates.last().remove();
}
}
}
@ObfuscatedName("o")
@ObfuscatedSignature(
signature = "(II)Lcb;",
garbageValue = "-200581175"
)
@Export("get")
HealthBarUpdate get(int var1) {
HealthBarUpdate var2 = (HealthBarUpdate)this.updates.last();
if (var2 != null && var2.cycle <= var1) {
for (HealthBarUpdate var3 = (HealthBarUpdate)this.updates.previous(); var3 != null && var3.cycle <= var1; var3 = (HealthBarUpdate)this.updates.previous()) {
var2.remove();
var2 = var3;
}
if (this.definition.int5 + var2.cycleOffset + var2.cycle > var1) {
return var2;
} else {
var2.remove();
return null;
}
} else {
return null;
}
}
@ObfuscatedName("q")
@ObfuscatedSignature(
signature = "(I)Z",
garbageValue = "1424696628"
)
@Export("isEmpty")
boolean isEmpty() {
return this.updates.method5014();
}
@ObfuscatedName("m")
@ObfuscatedSignature(
signature = "(Ljava/lang/String;Ljava/lang/String;III)V",
garbageValue = "1011181344"
)
public static void method2137(String var0, String var1, int var2, int var3) throws IOException {
WorldMapDecoration.idxCount = var3;
RouteStrategy.cacheGamebuild = var2;
try {
class225.field2587 = System.getProperty("os.name");
} catch (Exception var29) {
class225.field2587 = "Unknown";
}
JagexCache.field2077 = class225.field2587.toLowerCase();
try {
ArchiveLoader.userHomeDirectory = System.getProperty("user.home");
if (ArchiveLoader.userHomeDirectory != null) {
ArchiveLoader.userHomeDirectory = ArchiveLoader.userHomeDirectory + "/";
}
} catch (Exception var28) {
}
try {
if (JagexCache.field2077.startsWith("win")) {
if (ArchiveLoader.userHomeDirectory == null) {
ArchiveLoader.userHomeDirectory = System.getenv("USERPROFILE");
}
} else if (ArchiveLoader.userHomeDirectory == null) {
ArchiveLoader.userHomeDirectory = System.getenv("HOME");
}
if (ArchiveLoader.userHomeDirectory != null) {
ArchiveLoader.userHomeDirectory = ArchiveLoader.userHomeDirectory + "/";
}
} catch (Exception var27) {
}
if (ArchiveLoader.userHomeDirectory == null) {
ArchiveLoader.userHomeDirectory = "~/";
}
class234.field3096 = new String[]{"c:/rscache/", "/rscache/", "c:/windows/", "c:/winnt/", "c:/", ArchiveLoader.userHomeDirectory, "/tmp/", ""};
InterfaceParent.field590 = new String[]{".jagex_cache_" + RouteStrategy.cacheGamebuild, ".file_store_" + RouteStrategy.cacheGamebuild};
int var18 = 0;
label248:
while (var18 < 4) {
String var6 = var18 == 0 ? "" : "" + var18;
JagexCache.JagexCache_locationFile = new File(ArchiveLoader.userHomeDirectory, "jagex_cl_" + var0 + "_" + var1 + var6 + ".dat");
String var7 = null;
String var8 = null;
boolean var9 = false;
int var12;
int var14;
File var34;
if (JagexCache.JagexCache_locationFile.exists()) {
try {
AccessFile var10 = new AccessFile(JagexCache.JagexCache_locationFile, "rw", 10000L);
Buffer var11;
for (var11 = new Buffer((int)var10.length()); var11.offset < var11.array.length; var11.offset += var12) {
var12 = var10.read(var11.array, var11.offset, var11.array.length - var11.offset);
if (var12 == -1) {
throw new IOException();
}
}
var11.offset = 0;
var12 = var11.readUnsignedByte();
if (var12 < 1 || var12 > 3) {
throw new IOException("" + var12);
}
int var13 = 0;
if (var12 > 1) {
var13 = var11.readUnsignedByte();
}
if (var12 <= 2) {
var7 = var11.readStringCp1252NullCircumfixed();
if (var13 == 1) {
var8 = var11.readStringCp1252NullCircumfixed();
}
} else {
var7 = var11.readCESU8();
if (var13 == 1) {
var8 = var11.readCESU8();
}
}
var10.close();
} catch (IOException var31) {
var31.printStackTrace();
}
if (var7 != null) {
var34 = new File(var7);
if (!var34.exists()) {
var7 = null;
}
}
if (var7 != null) {
var34 = new File(var7, "test.dat");
boolean var37;
try {
RandomAccessFile var19 = new RandomAccessFile(var34, "rw");
var14 = var19.read();
var19.seek(0L);
var19.write(var14);
var19.seek(0L);
var19.close();
var34.delete();
var37 = true;
} catch (Exception var26) {
var37 = false;
}
if (!var37) {
var7 = null;
}
}
}
if (var7 == null && var18 == 0) {
label223:
for (int var20 = 0; var20 < InterfaceParent.field590.length; ++var20) {
for (int var21 = 0; var21 < class234.field3096.length; ++var21) {
File var22 = new File(class234.field3096[var21] + InterfaceParent.field590[var20] + File.separatorChar + var0 + File.separatorChar);
if (var22.exists() && class4.method58(new File(var22, "test.dat"), true)) {
var7 = var22.toString();
var9 = true;
break label223;
}
}
}
}
if (var7 == null) {
var7 = ArchiveLoader.userHomeDirectory + File.separatorChar + "jagexcache" + var6 + File.separatorChar + var0 + File.separatorChar + var1 + File.separatorChar;
var9 = true;
}
if (var8 != null) {
File var33 = new File(var8);
var34 = new File(var7);
try {
File[] var40 = var33.listFiles();
File[] var38 = var40;
for (var14 = 0; var14 < var38.length; ++var14) {
File var15 = var38[var14];
File var16 = new File(var34, var15.getName());
boolean var17 = var15.renameTo(var16);
if (!var17) {
throw new IOException();
}
}
} catch (Exception var30) {
var30.printStackTrace();
}
var9 = true;
}
if (var9) {
Client.method1803(new File(var7), (File)null);
}
File var5 = new File(var7);
JagexCache.cacheDir = var5;
if (!JagexCache.cacheDir.exists()) {
JagexCache.cacheDir.mkdirs();
}
File[] var32 = JagexCache.cacheDir.listFiles();
if (var32 != null) {
File[] var35 = var32;
for (int var23 = 0; var23 < var35.length; ++var23) {
File var24 = var35[var23];
boolean var39;
try {
RandomAccessFile var36 = new RandomAccessFile(var24, "rw");
var12 = var36.read();
var36.seek(0L);
var36.write(var12);
var36.seek(0L);
var36.close();
var39 = true;
} catch (Exception var25) {
var39 = false;
}
if (!var39) {
++var18;
continue label248;
}
}
}
break;
}
MusicPatch.method4025(JagexCache.cacheDir);
MusicPatchNode.method3970();
JagexCache.JagexCache_dat2File = new BufferedFile(new AccessFile(GameBuild.getFile("main_file_cache.dat2"), "rw", 1048576000L), 5200, 0);
JagexCache.JagexCache_idx255File = new BufferedFile(new AccessFile(GameBuild.getFile("main_file_cache.idx255"), "rw", 1048576L), 6000, 0);
JagexCache.JagexCache_idxFiles = new BufferedFile[WorldMapDecoration.idxCount];
for (var18 = 0; var18 < WorldMapDecoration.idxCount; ++var18) {
JagexCache.JagexCache_idxFiles[var18] = new BufferedFile(new AccessFile(GameBuild.getFile("main_file_cache.idx" + var18), "rw", 1048576L), 6000, 0);
}
}
@ObfuscatedName("m")
@ObfuscatedSignature(
signature = "(Lic;IIB)[Llh;",
garbageValue = "-91"
)
public static IndexedSprite[] method2125(AbstractArchive var0, int var1, int var2) {
byte[] var4 = var0.takeFile(var1, var2);
boolean var3;
if (var4 == null) {
var3 = false;
} else {
class3.SpriteBuffer_decode(var4);
var3 = true;
}
return !var3 ? null : class232.method4279();
}
@ObfuscatedName("p")
@ObfuscatedSignature(
signature = "(I)V",
garbageValue = "-631398790"
)
public static void method2133() {
VarpDefinition.VarpDefinition_cached.clear();
}
@ObfuscatedName("eb")
@ObfuscatedSignature(
signature = "(B)V",
garbageValue = "-57"
)
@Export("load")
static void load() {
int var0;
if (Client.titleLoadingStage == 0) {
UserComparator3.scene = new Scene(4, 104, 104, Tiles.Tiles_heights);
for (var0 = 0; var0 < 4; ++var0) {
Client.collisionMaps[var0] = new CollisionMap(104, 104);
}
class3.sceneMinimapSprite = new Sprite(512, 512);
Login.Login_loadingText = "Starting game engine...";
Login.Login_loadingPercent = 5;
Client.titleLoadingStage = 20;
} else if (Client.titleLoadingStage == 20) {
Login.Login_loadingText = "Prepared visibility map";
Login.Login_loadingPercent = 10;
Client.titleLoadingStage = 30;
} else if (Client.titleLoadingStage == 30) {
MilliClock.archive0 = WorldMapSection3.newArchive(0, false, true, true);
Message.archive1 = WorldMapSection3.newArchive(1, false, true, true);
Clock.archive2 = WorldMapSection3.newArchive(2, true, false, true);
class105.archive3 = WorldMapSection3.newArchive(3, false, true, true);
GrandExchangeOffer.archive4 = WorldMapSection3.newArchive(4, false, true, true);
WorldMapRectangle.archive5 = WorldMapSection3.newArchive(5, true, true, true);
UserComparator7.archive6 = WorldMapSection3.newArchive(6, true, true, true);
Projectile.archive7 = WorldMapSection3.newArchive(7, false, true, true);
GrandExchangeEvent.archive8 = WorldMapSection3.newArchive(8, false, true, true);
Tile.archive9 = WorldMapSection3.newArchive(9, false, true, true);
GraphicsObject.archive10 = WorldMapSection3.newArchive(10, false, true, true);
WorldMapData_0.archive11 = WorldMapSection3.newArchive(11, false, true, true);
Message.archive12 = WorldMapSection3.newArchive(12, false, true, true);
GameBuild.archive13 = WorldMapSection3.newArchive(13, true, false, true);
WorldMapIcon_1.archive14 = WorldMapSection3.newArchive(14, false, true, true);
WorldMapLabel.archive15 = WorldMapSection3.newArchive(15, false, true, true);
AbstractWorldMapIcon.archive17 = WorldMapSection3.newArchive(17, true, true, true);
VarcInt.archive18 = WorldMapSection3.newArchive(18, false, true, true);
WorldMapData_0.archive19 = WorldMapSection3.newArchive(19, false, true, true);
ClientPacket.archive20 = WorldMapSection3.newArchive(20, false, true, true);
Login.Login_loadingText = "Connecting to update server";
Login.Login_loadingPercent = 20;
Client.titleLoadingStage = 40;
} else if (Client.titleLoadingStage == 40) {
byte var28 = 0;
var0 = var28 + MilliClock.archive0.percentage() * 4 / 100;
var0 += Message.archive1.percentage() * 4 / 100;
var0 += Clock.archive2.percentage() * 2 / 100;
var0 += class105.archive3.percentage() * 2 / 100;
var0 += GrandExchangeOffer.archive4.percentage() * 6 / 100;
var0 += WorldMapRectangle.archive5.percentage() * 4 / 100;
var0 += UserComparator7.archive6.percentage() * 2 / 100;
var0 += Projectile.archive7.percentage() * 56 / 100;
var0 += GrandExchangeEvent.archive8.percentage() * 2 / 100;
var0 += Tile.archive9.percentage() * 2 / 100;
var0 += GraphicsObject.archive10.percentage() * 2 / 100;
var0 += WorldMapData_0.archive11.percentage() * 2 / 100;
var0 += Message.archive12.percentage() * 2 / 100;
var0 += GameBuild.archive13.percentage() * 2 / 100;
var0 += WorldMapIcon_1.archive14.percentage() * 2 / 100;
var0 += WorldMapLabel.archive15.percentage() * 2 / 100;
var0 += WorldMapData_0.archive19.percentage() / 100;
var0 += VarcInt.archive18.percentage() / 100;
var0 += ClientPacket.archive20.percentage() / 100;
var0 += AbstractWorldMapIcon.archive17.method4456() && AbstractWorldMapIcon.archive17.isFullyLoaded() ? 1 : 0;
if (var0 != 100) {
if (var0 != 0) {
Login.Login_loadingText = "Checking for updates - " + var0 + "%";
}
Login.Login_loadingPercent = 30;
} else {
WorldMapSprite.method481(MilliClock.archive0, "Animations");
WorldMapSprite.method481(Message.archive1, "Skeletons");
WorldMapSprite.method481(GrandExchangeOffer.archive4, "Sound FX");
WorldMapSprite.method481(WorldMapRectangle.archive5, "Maps");
WorldMapSprite.method481(UserComparator7.archive6, "Music Tracks");
WorldMapSprite.method481(Projectile.archive7, "Models");
WorldMapSprite.method481(GrandExchangeEvent.archive8, "Sprites");
WorldMapSprite.method481(WorldMapData_0.archive11, "Music Jingles");
WorldMapSprite.method481(WorldMapIcon_1.archive14, "Music Samples");
WorldMapSprite.method481(WorldMapLabel.archive15, "Music Patches");
WorldMapSprite.method481(WorldMapData_0.archive19, "World Map");
WorldMapSprite.method481(VarcInt.archive18, "World Map Geography");
WorldMapSprite.method481(ClientPacket.archive20, "World Map Ground");
UserComparator10.spriteIds = new GraphicsDefaults();
UserComparator10.spriteIds.decode(AbstractWorldMapIcon.archive17);
Login.Login_loadingText = "Loaded update list";
Login.Login_loadingPercent = 30;
Client.titleLoadingStage = 45;
}
} else {
Archive var1;
Archive var2;
if (Client.titleLoadingStage == 45) {
class200.method3803(22050, !Client.isLowDetail, 2);
MidiPcmStream var31 = new MidiPcmStream();
var31.method3935(9, 128);
class2.pcmPlayer0 = FontName.method5519(GrandExchangeOfferAgeComparator.taskHandler, 0, 22050);
class2.pcmPlayer0.setStream(var31);
var1 = WorldMapLabel.archive15;
var2 = WorldMapIcon_1.archive14;
Archive var27 = GrandExchangeOffer.archive4;
class206.musicPatchesArchive = var1;
class206.musicSamplesArchive = var2;
class206.soundEffectsArchive = var27;
WorldMapSprite.midiPcmStream = var31;
class58.pcmPlayer1 = FontName.method5519(GrandExchangeOfferAgeComparator.taskHandler, 1, 2048);
class60.pcmStreamMixer = new PcmStreamMixer();
class58.pcmPlayer1.setStream(class60.pcmStreamMixer);
class197.decimator = new Decimator(22050, class237.field3113);
Login.Login_loadingText = "Prepared sound engine";
Login.Login_loadingPercent = 35;
Client.titleLoadingStage = 50;
WorldMapSection0.WorldMapElement_fonts = new Fonts(GrandExchangeEvent.archive8, GameBuild.archive13);
} else {
int var22;
if (Client.titleLoadingStage == 50) {
FontName[] var30 = new FontName[]{FontName.FontName_plain12, FontName.FontName_verdana13, FontName.FontName_bold12, FontName.FontName_verdana11, FontName.FontName_verdana15, FontName.FontName_plain11};
var22 = var30.length;
Fonts var26 = WorldMapSection0.WorldMapElement_fonts;
FontName[] var3 = new FontName[]{FontName.FontName_plain12, FontName.FontName_verdana13, FontName.FontName_bold12, FontName.FontName_verdana11, FontName.FontName_verdana15, FontName.FontName_plain11};
Client.fontsMap = var26.createMap(var3);
if (Client.fontsMap.size() < var22) {
Login.Login_loadingText = "Loading fonts - " + Client.fontsMap.size() * 100 / var22 + "%";
Login.Login_loadingPercent = 40;
} else {
WorldMapLabel.fontPlain11 = (Font)Client.fontsMap.get(FontName.FontName_plain11);
MusicPatchNode2.fontPlain12 = (Font)Client.fontsMap.get(FontName.FontName_plain12);
GrandExchangeOfferNameComparator.fontBold12 = (Font)Client.fontsMap.get(FontName.FontName_bold12);
class13.platformInfo = Client.platformInfoProvider.get();
Login.Login_loadingText = "Loaded fonts";
Login.Login_loadingPercent = 40;
Client.titleLoadingStage = 60;
}
} else if (Client.titleLoadingStage == 60) {
var0 = ArchiveDiskActionHandler.method4429(GraphicsObject.archive10, GrandExchangeEvent.archive8);
byte var32 = 12;
if (var0 < var32) {
Login.Login_loadingText = "Loading title screen - " + var0 * 100 / var32 + "%";
Login.Login_loadingPercent = 50;
} else {
Login.Login_loadingText = "Loaded title screen";
Login.Login_loadingPercent = 50;
ClientPreferences.updateGameState(5);
Client.titleLoadingStage = 70;
}
} else if (Client.titleLoadingStage == 70) {
if (!Clock.archive2.isFullyLoaded()) {
Login.Login_loadingText = "Loading config - " + Clock.archive2.loadPercent() + "%";
Login.Login_loadingPercent = 60;
} else {
Archive var29 = Clock.archive2;
FloorOverlayDefinition.FloorOverlayDefinition_archive = var29;
ObjectSound.method1999(Clock.archive2);
GrandExchangeOfferUnitPriceComparator.method195(Clock.archive2, Projectile.archive7);
var1 = Clock.archive2;
var2 = Projectile.archive7;
boolean var33 = Client.isLowDetail;
ObjectDefinition.ObjectDefinition_archive = var1;
ObjectDefinition.ObjectDefinition_modelsArchive = var2;
ObjectDefinition.ObjectDefinition_isLowDetail = var33;
Archive var4 = Clock.archive2;
Archive var5 = Projectile.archive7;
NPCDefinition.NpcDefinition_archive = var4;
NPCDefinition.NpcDefinition_modelArchive = var5;
class197.method3771(Clock.archive2);
UserComparator3.method3548(Clock.archive2, Projectile.archive7, Client.isMembersWorld, WorldMapLabel.fontPlain11);
Archive var6 = Clock.archive2;
Archive var7 = MilliClock.archive0;
Archive var8 = Message.archive1;
SequenceDefinition.SequenceDefinition_archive = var6;
SequenceDefinition.SequenceDefinition_animationsArchive = var7;
SequenceDefinition.SequenceDefinition_skeletonsArchive = var8;
MenuAction.method2171(Clock.archive2, Projectile.archive7);
Archive var9 = Clock.archive2;
VarbitDefinition.VarbitDefinition_archive = var9;
TileItem.method2256(Clock.archive2);
UserComparator4.method3495(class105.archive3, Projectile.archive7, GrandExchangeEvent.archive8, GameBuild.archive13);
Archive var10 = Clock.archive2;
InvDefinition.InvDefinition_archive = var10;
UserComparator8.method3520(Clock.archive2);
Archive var11 = Clock.archive2;
VarcInt.VarcInt_archive = var11;
class8.method103(Clock.archive2);
AttackOption.varcs = new Varcs();
Archive var12 = Clock.archive2;
Archive var13 = GrandExchangeEvent.archive8;
Archive var14 = GameBuild.archive13;
HitSplatDefinition.HitSplatDefinition_archive = var12;
HitSplatDefinition.field3356 = var13;
HitSplatDefinition.HitSplatDefinition_fontsArchive = var14;
Archive var15 = Clock.archive2;
Archive var16 = GrandExchangeEvent.archive8;
HealthBarDefinition.HealthBarDefinition_archive = var15;
HealthBarDefinition.HitSplatDefinition_spritesArchive = var16;
Archive var17 = Clock.archive2;
Archive var18 = GrandExchangeEvent.archive8;
WorldMapElement.WorldMapElement_archive = var18;
if (var17.isFullyLoaded()) {
WorldMapElement.WorldMapElement_count = var17.getGroupFileCount(35);
class257.WorldMapElement_cached = new WorldMapElement[WorldMapElement.WorldMapElement_count];
for (int var19 = 0; var19 < WorldMapElement.WorldMapElement_count; ++var19) {
byte[] var20 = var17.takeFile(35, var19);
class257.WorldMapElement_cached[var19] = new WorldMapElement(var19);
if (var20 != null) {
class257.WorldMapElement_cached[var19].decode(new Buffer(var20));
class257.WorldMapElement_cached[var19].method4548();
}
}
}
Login.Login_loadingText = "Loaded config";
Login.Login_loadingPercent = 60;
Client.titleLoadingStage = 80;
}
} else if (Client.titleLoadingStage == 80) {
var0 = 0;
if (GrandExchangeOfferNameComparator.compass == null) {
GrandExchangeOfferNameComparator.compass = GameShell.SpriteBuffer_getSprite(GrandExchangeEvent.archive8, UserComparator10.spriteIds.compass, 0);
} else {
++var0;
}
if (UrlRequester.redHintArrowSprite == null) {
UrlRequester.redHintArrowSprite = GameShell.SpriteBuffer_getSprite(GrandExchangeEvent.archive8, UserComparator10.spriteIds.field3825, 0);
} else {
++var0;
}
if (UserComparator6.mapSceneSprites == null) {
UserComparator6.mapSceneSprites = method2125(GrandExchangeEvent.archive8, UserComparator10.spriteIds.mapScenes, 0);
} else {
++var0;
}
if (CollisionMap.headIconPkSprites == null) {
CollisionMap.headIconPkSprites = class217.method4091(GrandExchangeEvent.archive8, UserComparator10.spriteIds.headIconsPk, 0);
} else {
++var0;
}
if (KeyHandler.headIconPrayerSprites == null) {
KeyHandler.headIconPrayerSprites = class217.method4091(GrandExchangeEvent.archive8, UserComparator10.spriteIds.field3828, 0);
} else {
++var0;
}
if (SoundSystem.headIconHintSprites == null) {
SoundSystem.headIconHintSprites = class217.method4091(GrandExchangeEvent.archive8, UserComparator10.spriteIds.field3829, 0);
} else {
++var0;
}
if (class9.mapMarkerSprites == null) {
class9.mapMarkerSprites = class217.method4091(GrandExchangeEvent.archive8, UserComparator10.spriteIds.field3830, 0);
} else {
++var0;
}
if (Timer.crossSprites == null) {
Timer.crossSprites = class217.method4091(GrandExchangeEvent.archive8, UserComparator10.spriteIds.field3831, 0);
} else {
++var0;
}
if (AttackOption.mapDotSprites == null) {
AttackOption.mapDotSprites = class217.method4091(GrandExchangeEvent.archive8, UserComparator10.spriteIds.field3834, 0);
} else {
++var0;
}
if (WorldMapElement.scrollBarSprites == null) {
WorldMapElement.scrollBarSprites = method2125(GrandExchangeEvent.archive8, UserComparator10.spriteIds.field3824, 0);
} else {
++var0;
}
if (class4.modIconSprites == null) {
class4.modIconSprites = method2125(GrandExchangeEvent.archive8, UserComparator10.spriteIds.field3832, 0);
} else {
++var0;
}
if (var0 < 11) {
Login.Login_loadingText = "Loading sprites - " + var0 * 100 / 12 + "%";
Login.Login_loadingPercent = 70;
} else {
AbstractFont.AbstractFont_modIconSprites = class4.modIconSprites;
UrlRequester.redHintArrowSprite.normalize();
var22 = (int)(Math.random() * 21.0D) - 10;
int var23 = (int)(Math.random() * 21.0D) - 10;
int var24 = (int)(Math.random() * 21.0D) - 10;
int var25 = (int)(Math.random() * 41.0D) - 20;
UserComparator6.mapSceneSprites[0].shiftColors(var25 + var22, var25 + var23, var25 + var24);
Login.Login_loadingText = "Loaded sprites";
Login.Login_loadingPercent = 70;
Client.titleLoadingStage = 90;
}
} else if (Client.titleLoadingStage == 90) {
if (!Tile.archive9.isFullyLoaded()) {
Login.Login_loadingText = "Loading textures - " + "0%";
Login.Login_loadingPercent = 90;
} else {
UserComparator3.textureProvider = new TextureProvider(Tile.archive9, GrandExchangeEvent.archive8, 20, 0.8D, Client.isLowDetail ? 64 : 128);
Rasterizer3D.Rasterizer3D_setTextureLoader(UserComparator3.textureProvider);
Rasterizer3D.Rasterizer3D_setBrightness(0.8D);
Client.titleLoadingStage = 100;
}
} else if (Client.titleLoadingStage == 100) {
var0 = UserComparator3.textureProvider.getLoadedPercentage();
if (var0 < 100) {
Login.Login_loadingText = "Loading textures - " + var0 + "%";
Login.Login_loadingPercent = 90;
} else {
Login.Login_loadingText = "Loaded textures";
Login.Login_loadingPercent = 90;
Client.titleLoadingStage = 110;
}
} else if (Client.titleLoadingStage == 110) {
class219.mouseRecorder = new MouseRecorder();
GrandExchangeOfferAgeComparator.taskHandler.newThreadTask(class219.mouseRecorder, 10);
Login.Login_loadingText = "Loaded input handler";
Login.Login_loadingPercent = 92;
Client.titleLoadingStage = 120;
} else if (Client.titleLoadingStage == 120) {
if (!GraphicsObject.archive10.tryLoadFileByNames("huffman", "")) {
Login.Login_loadingText = "Loading wordpack - " + 0 + "%";
Login.Login_loadingPercent = 94;
} else {
Huffman var21 = new Huffman(GraphicsObject.archive10.takeFileByNames("huffman", ""));
class219.huffman = var21;
Login.Login_loadingText = "Loaded wordpack";
Login.Login_loadingPercent = 94;
Client.titleLoadingStage = 130;
}
} else if (Client.titleLoadingStage == 130) {
if (!class105.archive3.isFullyLoaded()) {
Login.Login_loadingText = "Loading interfaces - " + class105.archive3.loadPercent() * 4 / 5 + "%";
Login.Login_loadingPercent = 96;
} else if (!Message.archive12.isFullyLoaded()) {
Login.Login_loadingText = "Loading interfaces - " + (80 + Message.archive12.loadPercent() / 6) + "%";
Login.Login_loadingPercent = 96;
} else if (!GameBuild.archive13.isFullyLoaded()) {
Login.Login_loadingText = "Loading interfaces - " + (96 + GameBuild.archive13.loadPercent() / 50) + "%";
Login.Login_loadingPercent = 96;
} else {
Login.Login_loadingText = "Loaded interfaces";
Login.Login_loadingPercent = 98;
Client.titleLoadingStage = 140;
}
} else if (Client.titleLoadingStage == 140) {
Login.Login_loadingPercent = 100;
if (!WorldMapData_0.archive19.tryLoadGroupByName(WorldMapCacheName.field322.name)) {
Login.Login_loadingText = "Loading world map - " + WorldMapData_0.archive19.groupLoadPercentByName(WorldMapCacheName.field322.name) / 10 + "%";
} else {
if (class228.worldMap == null) {
class228.worldMap = new WorldMap();
class228.worldMap.init(WorldMapData_0.archive19, VarcInt.archive18, ClientPacket.archive20, GrandExchangeOfferNameComparator.fontBold12, Client.fontsMap, UserComparator6.mapSceneSprites);
}
Login.Login_loadingText = "Loaded world map";
Client.titleLoadingStage = 150;
}
} else if (Client.titleLoadingStage == 150) {
ClientPreferences.updateGameState(10);
}
}
}
}
@ObfuscatedName("go")
@ObfuscatedSignature(
signature = "(IIIS)V",
garbageValue = "3305"
)
@Export("worldToScreen")
static final void worldToScreen(int var0, int var1, int var2) {
if (var0 >= 128 && var1 >= 128 && var0 <= 13056 && var1 <= 13056) {
int var3 = Language.getTileHeight(var0, var1, TileItemPile.Client_plane) - var2;
var0 -= MouseHandler.cameraX;
var3 -= WorldMapSection3.cameraY;
var1 -= ObjectSound.cameraZ;
int var4 = Rasterizer3D.Rasterizer3D_sine[TilePaint.cameraPitch];
int var5 = Rasterizer3D.Rasterizer3D_cosine[TilePaint.cameraPitch];
int var6 = Rasterizer3D.Rasterizer3D_sine[Canvas.cameraYaw];
int var7 = Rasterizer3D.Rasterizer3D_cosine[Canvas.cameraYaw];
int var8 = var0 * var7 + var6 * var1 >> 16;
var1 = var7 * var1 - var0 * var6 >> 16;
var0 = var8;
var8 = var5 * var3 - var4 * var1 >> 16;
var1 = var5 * var1 + var3 * var4 >> 16;
if (var1 >= 50) {
Client.viewportTempX = var0 * Client.viewportZoom / var1 + Client.viewportWidth / 2;
Client.viewportTempY = Client.viewportHeight / 2 + var8 * Client.viewportZoom / var1;
} else {
Client.viewportTempX = -1;
Client.viewportTempY = -1;
}
} else {
Client.viewportTempX = -1;
Client.viewportTempY = -1;
}
}
}