Files
runelite/runescape-client/src/main/java/WorldMapLabel.java
2019-07-08 22:52:36 +02:00

268 lines
9.7 KiB
Java

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InvalidClassException;
import java.io.ObjectInputStream;
import java.io.OptionalDataException;
import java.io.StreamCorruptedException;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import net.runelite.mapping.Export;
import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedGetter;
import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature;
import net.runelite.rs.Reflection;
@ObfuscatedName("aj")
@Implements("WorldMapLabel")
public class WorldMapLabel {
@ObfuscatedName("e")
@ObfuscatedGetter(
intValue = -1536028937
)
public static int field1039;
@ObfuscatedName("m")
@Export("text")
String text;
@ObfuscatedName("f")
@ObfuscatedGetter(
intValue = -471061617
)
@Export("width")
int width;
@ObfuscatedName("q")
@ObfuscatedGetter(
intValue = -85027761
)
@Export("height")
int height;
@ObfuscatedName("w")
@ObfuscatedSignature(
signature = "Ls;"
)
@Export("size")
WorldMapLabelSize size;
@ObfuscatedSignature(
signature = "(Ljava/lang/String;IILs;)V"
)
WorldMapLabel(String var1, int var2, int var3, WorldMapLabelSize var4) {
this.text = var1;
this.width = var2;
this.height = var3;
this.size = var4;
}
@ObfuscatedName("f")
@ObfuscatedSignature(
signature = "(Lhx;I)V",
garbageValue = "-1747135919"
)
public static void method443(PacketBuffer var0) {
ReflectionCheck var1 = (ReflectionCheck)class322.reflectionChecks.last();
if (var1 != null) {
int var2 = var0.index;
var0.writeInt(var1.id);
for (int var3 = 0; var3 < var1.size; ++var3) {
if (var1.creationErrors[var3] != 0) {
var0.writeByte(var1.creationErrors[var3]);
} else {
try {
int var4 = var1.operations[var3];
Field var5;
int var6;
if (var4 == 0) {
var5 = var1.fields[var3];
var6 = Reflection.getInt(var5, (Object)null);
var0.writeByte(0);
var0.writeInt(var6);
} else if (var4 == 1) {
var5 = var1.fields[var3];
Reflection.setInt(var5, (Object)null, var1.intReplaceValues[var3]);
var0.writeByte(0);
} else if (var4 == 2) {
var5 = var1.fields[var3];
var6 = var5.getModifiers();
var0.writeByte(0);
var0.writeInt(var6);
}
Method var7;
if (var4 != 3) {
if (var4 == 4) {
var7 = var1.methods[var3];
var6 = var7.getModifiers();
var0.writeByte(0);
var0.writeInt(var6);
}
} else {
var7 = var1.methods[var3];
byte[][] var8 = var1.arguments[var3];
Object[] var9 = new Object[var8.length];
for (int var10 = 0; var10 < var8.length; ++var10) {
ObjectInputStream var11 = new ObjectInputStream(new ByteArrayInputStream(var8[var10]));
var9[var10] = var11.readObject();
}
Object var24 = Reflection.invoke(var7, (Object)null, var9);
if (var24 == null) {
var0.writeByte(0);
} else if (var24 instanceof Number) {
var0.writeByte(1);
var0.writeLong(((Number)var24).longValue());
} else if (var24 instanceof String) {
var0.writeByte(2);
var0.writeStringCp1252NullTerminated((String)var24);
} else {
var0.writeByte(4);
}
}
} catch (ClassNotFoundException var12) {
var0.writeByte(-10);
} catch (InvalidClassException var13) {
var0.writeByte(-11);
} catch (StreamCorruptedException var14) {
var0.writeByte(-12);
} catch (OptionalDataException var15) {
var0.writeByte(-13);
} catch (IllegalAccessException var16) {
var0.writeByte(-14);
} catch (IllegalArgumentException var17) {
var0.writeByte(-15);
} catch (InvocationTargetException var18) {
var0.writeByte(-16);
} catch (SecurityException var19) {
var0.writeByte(-17);
} catch (IOException var20) {
var0.writeByte(-18);
} catch (NullPointerException var21) {
var0.writeByte(-19);
} catch (Exception var22) {
var0.writeByte(-20);
} catch (Throwable var23) {
var0.writeByte(-21);
}
}
}
var0.writeCrc(var2);
var1.remove();
}
}
@ObfuscatedName("f")
@ObfuscatedSignature(
signature = "(III)I",
garbageValue = "823291412"
)
static int method442(int var0, int var1) {
ItemContainer var2 = (ItemContainer)ItemContainer.itemContainers.get((long)var0);
return var2 == null ? 0 : (var1 >= 0 && var1 < var2.quantities.length ? var2.quantities[var1] : 0);
}
@ObfuscatedName("u")
@ObfuscatedSignature(
signature = "(I)[Llq;",
garbageValue = "-1374541046"
)
@Export("createIndexedSpriteArray")
public static IndexedSprite[] createIndexedSpriteArray() {
IndexedSprite[] var0 = new IndexedSprite[class328.indexedSpriteCount];
for (int var1 = 0; var1 < class328.indexedSpriteCount; ++var1) {
IndexedSprite var2 = var0[var1] = new IndexedSprite();
var2.width = class328.indexedSpriteWidth;
var2.height = class328.indexedSpriteHeight;
var2.xOffset = class328.indexedSpriteOffsetXs[var1];
var2.yOffset = class328.indexedSpriteOffsetYs[var1];
var2.subWidth = VarbitDefinition.indexedSpriteWidths[var1];
var2.subHeight = SecureRandomCallable.indexedSpriteHeights[var1];
var2.palette = class328.indexedSpritePalette;
var2.pixels = class328.spritePixels[var1];
}
class328.indexedSpriteOffsetXs = null;
class328.indexedSpriteOffsetYs = null;
VarbitDefinition.indexedSpriteWidths = null;
SecureRandomCallable.indexedSpriteHeights = null;
class328.indexedSpritePalette = null;
class328.spritePixels = ((byte[][])null);
return var0;
}
@ObfuscatedName("u")
@ObfuscatedSignature(
signature = "(Lbt;Lbt;IZI)I",
garbageValue = "1459100828"
)
@Export("compareWorlds")
static int compareWorlds(World var0, World var1, int mode, boolean reversed) {
if (mode == 1) {
int var4 = var0.population;
int var5 = var1.population;
if (!reversed) {
if (var4 == -1) {
var4 = 2001;
}
if (var5 == -1) {
var5 = 2001;
}
}
return var4 - var5;
} else {
return mode == 2 ? var0.location - var1.location : (mode == 3 ? (var0.activity.equals("-") ? (var1.activity.equals("-") ? 0 : (reversed ? -1 : 1)) : (var1.activity.equals("-") ? (reversed ? 1 : -1) : var0.activity.compareTo(var1.activity))) : (mode == 4 ? (var0.method357() ? (var1.method357() ? 0 : 1) : (var1.method357() ? -1 : 0)) : (mode == 5 ? (var0.method356() ? (var1.method356() ? 0 : 1) : (var1.method356() ? -1 : 0)) : (mode == 6 ? (var0.isPvp() ? (var1.isPvp() ? 0 : 1) : (var1.isPvp() ? -1 : 0)) : (mode == 7 ? (var0.isMembersOnly() ? (var1.isMembersOnly() ? 0 : 1) : (var1.isMembersOnly() ? -1 : 0)) : var0.id - var1.id)))));
}
}
@ObfuscatedName("a")
@ObfuscatedSignature(
signature = "(B)V",
garbageValue = "60"
)
public static void method440() {
NPCDefinition.NpcDefinition_cached.clear();
NPCDefinition.NpcDefinition_cachedModels.clear();
}
@ObfuscatedName("gx")
@ObfuscatedSignature(
signature = "(IIII)V",
garbageValue = "-1610474394"
)
@Export("worldToScreen")
static final void worldToScreen(int var0, int var1, int var2) {
if (var0 >= 128 && var1 >= 128 && var0 <= 13056 && var1 <= 13056) {
int var3 = class32.getTileHeight(var0, var1, SoundSystem.plane) - var2;
var0 -= WorldMapSection2.cameraX;
var3 -= GrandExchangeEvents.cameraY;
var1 -= GrandExchangeOfferNameComparator.cameraZ;
int var4 = Rasterizer3D.Rasterizer3D_sine[WorldMapIcon1.cameraPitch];
int var5 = Rasterizer3D.Rasterizer3D_cosine[WorldMapIcon1.cameraPitch];
int var6 = Rasterizer3D.Rasterizer3D_sine[MusicPatchNode.cameraYaw];
int var7 = Rasterizer3D.Rasterizer3D_cosine[MusicPatchNode.cameraYaw];
int var8 = var0 * var7 + var6 * var1 >> 16;
var1 = var7 * var1 - var0 * var6 >> 16;
var0 = var8;
var8 = var3 * var5 - var4 * var1 >> 16;
var1 = var5 * var1 + var3 * var4 >> 16;
if (var1 >= 50) {
Client.viewportTempX = var0 * Client.viewportZoom / var1 + Client.viewportWidth / 2;
Client.viewportTempY = var8 * Client.viewportZoom / var1 + Client.viewportHeight / 2;
} else {
Client.viewportTempX = -1;
Client.viewportTempY = -1;
}
} else {
Client.viewportTempX = -1;
Client.viewportTempY = -1;
}
}
}