458 lines
13 KiB
Java
458 lines
13 KiB
Java
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.ScriptOpcodes;
|
|
|
|
@ObfuscatedName("du")
|
|
@Implements("TextureProvider")
|
|
public class TextureProvider implements TextureLoader {
|
|
@ObfuscatedName("y")
|
|
@Export("Tiles_lightness")
|
|
static int[] Tiles_lightness;
|
|
@ObfuscatedName("m")
|
|
@ObfuscatedSignature(
|
|
signature = "[Leo;"
|
|
)
|
|
@Export("textures")
|
|
Texture[] textures;
|
|
@ObfuscatedName("o")
|
|
@ObfuscatedSignature(
|
|
signature = "Ljp;"
|
|
)
|
|
@Export("deque")
|
|
NodeDeque deque;
|
|
@ObfuscatedName("q")
|
|
@ObfuscatedGetter(
|
|
intValue = 1950202761
|
|
)
|
|
@Export("capacity")
|
|
int capacity;
|
|
@ObfuscatedName("j")
|
|
@ObfuscatedGetter(
|
|
intValue = 742782017
|
|
)
|
|
@Export("remaining")
|
|
int remaining;
|
|
@ObfuscatedName("p")
|
|
@Export("brightness")
|
|
double brightness;
|
|
@ObfuscatedName("g")
|
|
@ObfuscatedGetter(
|
|
intValue = -1900729685
|
|
)
|
|
@Export("textureSize")
|
|
int textureSize;
|
|
@ObfuscatedName("n")
|
|
@ObfuscatedSignature(
|
|
signature = "Lic;"
|
|
)
|
|
@Export("archive")
|
|
AbstractArchive archive;
|
|
|
|
@ObfuscatedSignature(
|
|
signature = "(Lic;Lic;IDI)V"
|
|
)
|
|
public TextureProvider(AbstractArchive var1, AbstractArchive var2, int var3, double var4, int var6) {
|
|
this.deque = new NodeDeque();
|
|
this.remaining = 0;
|
|
this.brightness = 1.0D;
|
|
this.textureSize = 128;
|
|
this.archive = var2;
|
|
this.capacity = var3;
|
|
this.remaining = this.capacity;
|
|
this.brightness = var4;
|
|
this.textureSize = var6;
|
|
int[] var7 = var1.getGroupFileIds(0);
|
|
int var8 = var7.length;
|
|
this.textures = new Texture[var1.getGroupFileCount(0)];
|
|
|
|
for (int var9 = 0; var9 < var8; ++var9) {
|
|
Buffer var10 = new Buffer(var1.takeFile(0, var7[var9]));
|
|
this.textures[var7[var9]] = new Texture(var10);
|
|
}
|
|
|
|
}
|
|
|
|
@ObfuscatedName("m")
|
|
@ObfuscatedSignature(
|
|
signature = "(I)I",
|
|
garbageValue = "-1846975444"
|
|
)
|
|
@Export("getLoadedPercentage")
|
|
public int getLoadedPercentage() {
|
|
int var1 = 0;
|
|
int var2 = 0;
|
|
Texture[] var3 = this.textures;
|
|
|
|
for (int var4 = 0; var4 < var3.length; ++var4) {
|
|
Texture var5 = var3[var4];
|
|
if (var5 != null && var5.fileIds != null) {
|
|
var1 += var5.fileIds.length;
|
|
int[] var6 = var5.fileIds;
|
|
|
|
for (int var7 = 0; var7 < var6.length; ++var7) {
|
|
int var8 = var6[var7];
|
|
if (this.archive.method4359(var8)) {
|
|
++var2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (var1 == 0) {
|
|
return 0;
|
|
} else {
|
|
return var2 * 100 / var1;
|
|
}
|
|
}
|
|
|
|
@ObfuscatedName("o")
|
|
@Export("setBrightness")
|
|
public void setBrightness(double var1) {
|
|
this.brightness = var1;
|
|
this.clear();
|
|
}
|
|
|
|
@ObfuscatedName("q")
|
|
@ObfuscatedSignature(
|
|
signature = "(II)[I",
|
|
garbageValue = "1948753683"
|
|
)
|
|
@Export("getTexturePixels")
|
|
public int[] getTexturePixels(int var1) {
|
|
Texture var2 = this.textures[var1];
|
|
if (var2 != null) {
|
|
if (var2.pixels != null) {
|
|
this.deque.addLast(var2);
|
|
var2.isLoaded = true;
|
|
return var2.pixels;
|
|
}
|
|
|
|
boolean var3 = var2.load(this.brightness, this.textureSize, this.archive);
|
|
if (var3) {
|
|
if (this.remaining == 0) {
|
|
Texture var4 = (Texture)this.deque.removeFirst();
|
|
var4.reset();
|
|
} else {
|
|
--this.remaining;
|
|
}
|
|
|
|
this.deque.addLast(var2);
|
|
var2.isLoaded = true;
|
|
return var2.pixels;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
@ObfuscatedName("j")
|
|
@ObfuscatedSignature(
|
|
signature = "(II)I",
|
|
garbageValue = "1038437362"
|
|
)
|
|
@Export("getAverageTextureRGB")
|
|
public int getAverageTextureRGB(int var1) {
|
|
return this.textures[var1] != null ? this.textures[var1].averageRGB : 0;
|
|
}
|
|
|
|
@ObfuscatedName("p")
|
|
@ObfuscatedSignature(
|
|
signature = "(IB)Z",
|
|
garbageValue = "54"
|
|
)
|
|
public boolean vmethod3404(int var1) {
|
|
return this.textures[var1].field1650;
|
|
}
|
|
|
|
@ObfuscatedName("g")
|
|
@ObfuscatedSignature(
|
|
signature = "(IB)Z",
|
|
garbageValue = "18"
|
|
)
|
|
@Export("isLowDetail")
|
|
public boolean isLowDetail(int var1) {
|
|
return this.textureSize == 64;
|
|
}
|
|
|
|
@ObfuscatedName("n")
|
|
@ObfuscatedSignature(
|
|
signature = "(I)V",
|
|
garbageValue = "-426854674"
|
|
)
|
|
@Export("clear")
|
|
public void clear() {
|
|
for (int var1 = 0; var1 < this.textures.length; ++var1) {
|
|
if (this.textures[var1] != null) {
|
|
this.textures[var1].reset();
|
|
}
|
|
}
|
|
|
|
this.deque = new NodeDeque();
|
|
this.remaining = this.capacity;
|
|
}
|
|
|
|
@ObfuscatedName("u")
|
|
@ObfuscatedSignature(
|
|
signature = "(II)V",
|
|
garbageValue = "245586965"
|
|
)
|
|
@Export("animate")
|
|
public void animate(int var1) {
|
|
for (int var2 = 0; var2 < this.textures.length; ++var2) {
|
|
Texture var3 = this.textures[var2];
|
|
if (var3 != null && var3.animationDirection != 0 && var3.isLoaded) {
|
|
var3.animate(var1);
|
|
var3.isLoaded = false;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
@ObfuscatedName("ak")
|
|
@ObfuscatedSignature(
|
|
signature = "(ILcs;ZI)I",
|
|
garbageValue = "1729691421"
|
|
)
|
|
static int method2888(int var0, Script var1, boolean var2) {
|
|
int var3;
|
|
if (var0 == ScriptOpcodes.OC_NAME) {
|
|
var3 = Interpreter.Interpreter_intStack[--UrlRequester.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_stringStack[++WorldMapEvent.Interpreter_stringStackSize - 1] = KitDefinition.ItemDefinition_get(var3).name;
|
|
return 1;
|
|
} else {
|
|
int var4;
|
|
ItemDefinition var5;
|
|
if (var0 == ScriptOpcodes.OC_OP) {
|
|
UrlRequester.Interpreter_intStackSize -= 2;
|
|
var3 = Interpreter.Interpreter_intStack[UrlRequester.Interpreter_intStackSize];
|
|
var4 = Interpreter.Interpreter_intStack[UrlRequester.Interpreter_intStackSize + 1];
|
|
var5 = KitDefinition.ItemDefinition_get(var3);
|
|
if (var4 >= 1 && var4 <= 5 && var5.groundActions[var4 - 1] != null) {
|
|
Interpreter.Interpreter_stringStack[++WorldMapEvent.Interpreter_stringStackSize - 1] = var5.groundActions[var4 - 1];
|
|
} else {
|
|
Interpreter.Interpreter_stringStack[++WorldMapEvent.Interpreter_stringStackSize - 1] = "";
|
|
}
|
|
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.OC_IOP) {
|
|
UrlRequester.Interpreter_intStackSize -= 2;
|
|
var3 = Interpreter.Interpreter_intStack[UrlRequester.Interpreter_intStackSize];
|
|
var4 = Interpreter.Interpreter_intStack[UrlRequester.Interpreter_intStackSize + 1];
|
|
var5 = KitDefinition.ItemDefinition_get(var3);
|
|
if (var4 >= 1 && var4 <= 5 && var5.inventoryActions[var4 - 1] != null) {
|
|
Interpreter.Interpreter_stringStack[++WorldMapEvent.Interpreter_stringStackSize - 1] = var5.inventoryActions[var4 - 1];
|
|
} else {
|
|
Interpreter.Interpreter_stringStack[++WorldMapEvent.Interpreter_stringStackSize - 1] = "";
|
|
}
|
|
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.OC_COST) {
|
|
var3 = Interpreter.Interpreter_intStack[--UrlRequester.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_intStack[++UrlRequester.Interpreter_intStackSize - 1] = KitDefinition.ItemDefinition_get(var3).price;
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.OC_STACKABLE) {
|
|
var3 = Interpreter.Interpreter_intStack[--UrlRequester.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_intStack[++UrlRequester.Interpreter_intStackSize - 1] = KitDefinition.ItemDefinition_get(var3).isStackable == 1 ? 1 : 0;
|
|
return 1;
|
|
} else {
|
|
ItemDefinition var6;
|
|
if (var0 == ScriptOpcodes.OC_CERT) {
|
|
var3 = Interpreter.Interpreter_intStack[--UrlRequester.Interpreter_intStackSize];
|
|
var6 = KitDefinition.ItemDefinition_get(var3);
|
|
if (var6.noteTemplate == -1 && var6.note >= 0) {
|
|
Interpreter.Interpreter_intStack[++UrlRequester.Interpreter_intStackSize - 1] = var6.note;
|
|
} else {
|
|
Interpreter.Interpreter_intStack[++UrlRequester.Interpreter_intStackSize - 1] = var3;
|
|
}
|
|
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.OC_UNCERT) {
|
|
var3 = Interpreter.Interpreter_intStack[--UrlRequester.Interpreter_intStackSize];
|
|
var6 = KitDefinition.ItemDefinition_get(var3);
|
|
if (var6.noteTemplate >= 0 && var6.note >= 0) {
|
|
Interpreter.Interpreter_intStack[++UrlRequester.Interpreter_intStackSize - 1] = var6.note;
|
|
} else {
|
|
Interpreter.Interpreter_intStack[++UrlRequester.Interpreter_intStackSize - 1] = var3;
|
|
}
|
|
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.OC_MEMBERS) {
|
|
var3 = Interpreter.Interpreter_intStack[--UrlRequester.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_intStack[++UrlRequester.Interpreter_intStackSize - 1] = KitDefinition.ItemDefinition_get(var3).isMembersOnly ? 1 : 0;
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.OC_PLACEHOLDER) {
|
|
var3 = Interpreter.Interpreter_intStack[--UrlRequester.Interpreter_intStackSize];
|
|
var6 = KitDefinition.ItemDefinition_get(var3);
|
|
if (var6.placeholderTemplate == -1 && var6.placeholder >= 0) {
|
|
Interpreter.Interpreter_intStack[++UrlRequester.Interpreter_intStackSize - 1] = var6.placeholder;
|
|
} else {
|
|
Interpreter.Interpreter_intStack[++UrlRequester.Interpreter_intStackSize - 1] = var3;
|
|
}
|
|
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.OC_UNPLACEHOLDER) {
|
|
var3 = Interpreter.Interpreter_intStack[--UrlRequester.Interpreter_intStackSize];
|
|
var6 = KitDefinition.ItemDefinition_get(var3);
|
|
if (var6.placeholderTemplate >= 0 && var6.placeholder >= 0) {
|
|
Interpreter.Interpreter_intStack[++UrlRequester.Interpreter_intStackSize - 1] = var6.placeholder;
|
|
} else {
|
|
Interpreter.Interpreter_intStack[++UrlRequester.Interpreter_intStackSize - 1] = var3;
|
|
}
|
|
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.OC_FIND) {
|
|
String var7 = Interpreter.Interpreter_stringStack[--WorldMapEvent.Interpreter_stringStackSize];
|
|
var4 = Interpreter.Interpreter_intStack[--UrlRequester.Interpreter_intStackSize];
|
|
SpriteMask.findItemDefinitions(var7, var4 == 1);
|
|
Interpreter.Interpreter_intStack[++UrlRequester.Interpreter_intStackSize - 1] = TileItemPile.foundItemIdCount;
|
|
return 1;
|
|
} else if (var0 != ScriptOpcodes.OC_FINDNEXT) {
|
|
if (var0 == ScriptOpcodes.OC_FINDRESET) {
|
|
ArchiveLoader.foundItemIndex = 0;
|
|
return 1;
|
|
} else {
|
|
return 2;
|
|
}
|
|
} else {
|
|
if (WorldMapScaleHandler.foundItemIds != null && ArchiveLoader.foundItemIndex < TileItemPile.foundItemIdCount) {
|
|
Interpreter.Interpreter_intStack[++UrlRequester.Interpreter_intStackSize - 1] = WorldMapScaleHandler.foundItemIds[++ArchiveLoader.foundItemIndex - 1] & '\uffff';
|
|
} else {
|
|
Interpreter.Interpreter_intStack[++UrlRequester.Interpreter_intStackSize - 1] = -1;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@ObfuscatedName("bc")
|
|
@ObfuscatedSignature(
|
|
signature = "(Ljava/lang/String;I)I",
|
|
garbageValue = "1974416966"
|
|
)
|
|
public static int method2873(String var0) {
|
|
return var0.length() + 2;
|
|
}
|
|
|
|
@ObfuscatedName("gz")
|
|
@ObfuscatedSignature(
|
|
signature = "(IIZB)V",
|
|
garbageValue = "-64"
|
|
)
|
|
static final void method2900(int var0, int var1, boolean var2) {
|
|
if (!var2 || var0 != WorldMapCacheName.field328 || class22.field104 != var1) {
|
|
WorldMapCacheName.field328 = var0;
|
|
class22.field104 = var1;
|
|
ClientPreferences.updateGameState(25);
|
|
ArchiveDiskActionHandler.drawLoadingMessage("Loading - please wait.", true);
|
|
int var3 = class182.baseX;
|
|
int var4 = SecureRandomFuture.baseY;
|
|
class182.baseX = (var0 - 6) * 8;
|
|
SecureRandomFuture.baseY = (var1 - 6) * 8;
|
|
int var5 = class182.baseX - var3;
|
|
int var6 = SecureRandomFuture.baseY - var4;
|
|
var3 = class182.baseX;
|
|
var4 = SecureRandomFuture.baseY;
|
|
|
|
int var7;
|
|
int var9;
|
|
int[] var10000;
|
|
for (var7 = 0; var7 < 32768; ++var7) {
|
|
NPC var8 = Client.npcs[var7];
|
|
if (var8 != null) {
|
|
for (var9 = 0; var9 < 10; ++var9) {
|
|
var10000 = var8.pathX;
|
|
var10000[var9] -= var5;
|
|
var10000 = var8.pathY;
|
|
var10000[var9] -= var6;
|
|
}
|
|
|
|
var8.x -= var5 * 128;
|
|
var8.y -= var6 * 128;
|
|
}
|
|
}
|
|
|
|
for (var7 = 0; var7 < 2048; ++var7) {
|
|
Player var21 = Client.players[var7];
|
|
if (var21 != null) {
|
|
for (var9 = 0; var9 < 10; ++var9) {
|
|
var10000 = var21.pathX;
|
|
var10000[var9] -= var5;
|
|
var10000 = var21.pathY;
|
|
var10000[var9] -= var6;
|
|
}
|
|
|
|
var21.x -= var5 * 128;
|
|
var21.y -= var6 * 128;
|
|
}
|
|
}
|
|
|
|
byte var20 = 0;
|
|
byte var18 = 104;
|
|
byte var22 = 1;
|
|
if (var5 < 0) {
|
|
var20 = 103;
|
|
var18 = -1;
|
|
var22 = -1;
|
|
}
|
|
|
|
byte var10 = 0;
|
|
byte var11 = 104;
|
|
byte var12 = 1;
|
|
if (var6 < 0) {
|
|
var10 = 103;
|
|
var11 = -1;
|
|
var12 = -1;
|
|
}
|
|
|
|
int var14;
|
|
for (int var13 = var20; var18 != var13; var13 += var22) {
|
|
for (var14 = var10; var11 != var14; var14 += var12) {
|
|
int var15 = var13 + var5;
|
|
int var16 = var6 + var14;
|
|
|
|
for (int var17 = 0; var17 < 4; ++var17) {
|
|
if (var15 >= 0 && var16 >= 0 && var15 < 104 && var16 < 104) {
|
|
Client.groundItems[var17][var13][var14] = Client.groundItems[var17][var15][var16];
|
|
} else {
|
|
Client.groundItems[var17][var13][var14] = null;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
for (PendingSpawn var19 = (PendingSpawn)Client.pendingSpawns.last(); var19 != null; var19 = (PendingSpawn)Client.pendingSpawns.previous()) {
|
|
var19.x -= var5;
|
|
var19.y -= var6;
|
|
if (var19.x < 0 || var19.y < 0 || var19.x >= 104 || var19.y >= 104) {
|
|
var19.remove();
|
|
}
|
|
}
|
|
|
|
if (Client.destinationX != 0) {
|
|
Client.destinationX -= var5;
|
|
Client.destinationY -= var6;
|
|
}
|
|
|
|
Client.soundEffectCount = 0;
|
|
Client.isCameraLocked = false;
|
|
MouseHandler.cameraX -= var5 << 7;
|
|
ObjectSound.cameraZ -= var6 << 7;
|
|
class225.oculusOrbFocalPointX -= var5 << 7;
|
|
HealthBarDefinition.oculusOrbFocalPointY -= var6 << 7;
|
|
Client.field937 = -1;
|
|
Client.graphicsObjects.clear();
|
|
Client.projectiles.clear();
|
|
|
|
for (var14 = 0; var14 < 4; ++var14) {
|
|
Client.collisionMaps[var14].clear();
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|