Files
runelite/runescape-client/src/main/java/WorldMapRegion.java
Owain van Brakel e6be88fbeb project: rev 199
2021-08-25 13:49:53 +02:00

1141 lines
34 KiB
Java

import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map.Entry;
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("fm")
@Implements("WorldMapRegion")
public class WorldMapRegion {
@ObfuscatedName("o")
@ObfuscatedSignature(
descriptor = "Lhv;"
)
@Export("WorldMapRegion_cachedSprites")
static DemotingHashTable WorldMapRegion_cachedSprites;
@ObfuscatedName("ee")
@ObfuscatedSignature(
descriptor = "Lmp;"
)
@Export("spriteIds")
static GraphicsDefaults spriteIds;
@ObfuscatedName("lc")
@ObfuscatedGetter(
intValue = 203412635
)
@Export("menuX")
static int menuX;
@ObfuscatedName("g")
@ObfuscatedGetter(
intValue = 161567605
)
@Export("regionX")
int regionX;
@ObfuscatedName("z")
@ObfuscatedGetter(
intValue = 1045938021
)
@Export("regionY")
int regionY;
@ObfuscatedName("a")
@ObfuscatedSignature(
descriptor = "Lfd;"
)
@Export("worldMapData_0")
WorldMapData_0 worldMapData_0;
@ObfuscatedName("u")
@Export("worldMapData1List")
LinkedList worldMapData1List;
@ObfuscatedName("e")
@ObfuscatedGetter(
intValue = -2035160101
)
@Export("backgroundColor")
int backgroundColor;
@ObfuscatedName("l")
@ObfuscatedGetter(
intValue = 1553061967
)
@Export("pixelsPerTile")
int pixelsPerTile;
@ObfuscatedName("y")
@Export("icon0List")
List icon0List;
@ObfuscatedName("v")
@Export("iconMap")
HashMap iconMap;
@ObfuscatedName("f")
@Export("fonts")
final HashMap fonts;
static {
WorldMapRegion_cachedSprites = new DemotingHashTable(37748736, 256);
}
WorldMapRegion(int var1, int var2, int var3, HashMap var4) {
this.regionX = var1;
this.regionY = var2;
this.worldMapData1List = new LinkedList();
this.icon0List = new LinkedList();
this.iconMap = new HashMap();
this.backgroundColor = var3 | -16777216;
this.fonts = var4;
}
@ObfuscatedName("m")
@ObfuscatedSignature(
descriptor = "(IIII)V",
garbageValue = "-1100748322"
)
void method3525(int var1, int var2, int var3) {
int var5 = this.regionX;
int var6 = this.regionY;
int var7 = this.pixelsPerTile;
DemotingHashTable var8 = WorldMapRegion_cachedSprites;
long var9 = (long)(var7 << 16 | var5 << 8 | var6);
SpritePixels var4 = (SpritePixels)var8.get(var9);
if (var4 != null) {
if (var3 == this.pixelsPerTile * 64) {
var4.drawAt(var1, var2);
} else {
var4.drawScaledWorldmap(var1, var2, var3, var3);
}
}
}
@ObfuscatedName("k")
@ObfuscatedSignature(
descriptor = "(Lfd;Ljava/util/List;B)V",
garbageValue = "-31"
)
@Export("initWorldMapData0")
void initWorldMapData0(WorldMapData_0 var1, List var2) {
this.iconMap.clear();
this.worldMapData_0 = var1;
this.addAllToIconList(var2);
}
@ObfuscatedName("o")
@ObfuscatedSignature(
descriptor = "(Ljava/util/HashSet;Ljava/util/List;I)V",
garbageValue = "-1951911545"
)
@Export("initWorldMapData1")
void initWorldMapData1(HashSet var1, List var2) {
this.iconMap.clear();
Iterator var3 = var1.iterator();
while (var3.hasNext()) {
WorldMapData_1 var4 = (WorldMapData_1)var3.next();
if (var4.getRegionX() == this.regionX && var4.getRegionY() == this.regionY) {
this.worldMapData1List.add(var4);
}
}
this.addAllToIconList(var2);
}
@ObfuscatedName("g")
@ObfuscatedSignature(
descriptor = "(IIIILgy;I)V",
garbageValue = "2060822775"
)
@Export("getIconsForTiles")
void getIconsForTiles(int var1, int var2, int var3, int var4, AbstractWorldMapData var5) {
for (int var6 = var1; var6 < var3 + var1; ++var6) {
label75:
for (int var7 = var2; var7 < var2 + var4; ++var7) {
for (int var8 = 0; var8 < var5.planes; ++var8) {
WorldMapDecoration[] var9 = var5.decorations[var8][var6][var7];
if (var9 != null && var9.length != 0) {
WorldMapDecoration[] var10 = var9;
for (int var11 = 0; var11 < var10.length; ++var11) {
ObjectComposition var13;
boolean var14;
label66: {
WorldMapDecoration var12 = var10[var11];
var13 = HitSplatDefinition.getObjectDefinition(var12.objectDefinitionId);
if (var13.transforms != null) {
int[] var15 = var13.transforms;
for (int var16 = 0; var16 < var15.length; ++var16) {
int var17 = var15[var16];
ObjectComposition var18 = HitSplatDefinition.getObjectDefinition(var17);
if (var18.mapIconId != -1) {
var14 = true;
break label66;
}
}
} else if (var13.mapIconId != -1) {
var14 = true;
break label66;
}
var14 = false;
}
if (var14) {
this.getIcon(var13, var8, var6, var7, var5);
continue label75;
}
}
}
}
}
}
}
@ObfuscatedName("z")
@ObfuscatedSignature(
descriptor = "(Lff;IIILgy;I)V",
garbageValue = "1090808059"
)
@Export("getIcon")
void getIcon(ObjectComposition var1, int var2, int var3, int var4, AbstractWorldMapData var5) {
Coord var6 = new Coord(var2, var3 + this.regionX * 64, this.regionY * 64 + var4);
Coord var7 = null;
if (this.worldMapData_0 != null) {
var7 = new Coord(this.worldMapData_0.minPlane + var2, var3 + this.worldMapData_0.regionXLow * 64, var4 + this.worldMapData_0.regionYLow * 64);
} else {
WorldMapData_1 var8 = (WorldMapData_1)var5;
var7 = new Coord(var2 + var8.minPlane, var3 + var8.regionXLow * 64 + var8.getChunkXLow() * 8, var8.regionYLow * 64 + var4 + var8.getChunkYLow() * 8);
}
WorldMapElement var9;
Object var10;
if (var1.transforms != null) {
var10 = new WorldMapIcon_1(var7, var6, var1.id, this);
} else {
var9 = class54.WorldMapElement_get(var1.mapIconId);
var10 = new WorldMapIcon_0(var7, var6, var9.objectId, this.createMapLabel(var9));
}
var9 = class54.WorldMapElement_get(((AbstractWorldMapIcon)var10).getElement());
if (var9.field1628) {
this.iconMap.put(new Coord(0, var3, var4), var10);
}
}
@ObfuscatedName("a")
@ObfuscatedSignature(
descriptor = "(I)V",
garbageValue = "-397033886"
)
@Export("initWorldMapIcon1s")
void initWorldMapIcon1s() {
Iterator var1 = this.iconMap.values().iterator();
while (var1.hasNext()) {
AbstractWorldMapIcon var2 = (AbstractWorldMapIcon)var1.next();
if (var2 instanceof WorldMapIcon_1) {
((WorldMapIcon_1)var2).init();
}
}
}
@ObfuscatedName("u")
@ObfuscatedSignature(
descriptor = "(Ljava/util/List;I)V",
garbageValue = "904082423"
)
@Export("addAllToIconList")
void addAllToIconList(List var1) {
Iterator var2 = var1.iterator();
while (var2.hasNext()) {
WorldMapIcon_0 var3 = (WorldMapIcon_0)var2.next();
if (class54.WorldMapElement_get(var3.element).field1628 && var3.coord2.x >> 6 == this.regionX && var3.coord2.y >> 6 == this.regionY) {
WorldMapIcon_0 var4 = new WorldMapIcon_0(var3.coord2, var3.coord2, var3.element, this.method3588(var3.element));
this.icon0List.add(var4);
}
}
}
@ObfuscatedName("e")
@ObfuscatedSignature(
descriptor = "(I)V",
garbageValue = "1389975162"
)
void method3523() {
if (this.worldMapData_0 != null) {
this.worldMapData_0.reset();
} else {
Iterator var1 = this.worldMapData1List.iterator();
while (var1.hasNext()) {
WorldMapData_1 var2 = (WorldMapData_1)var1.next();
var2.reset();
}
}
}
@ObfuscatedName("l")
@ObfuscatedSignature(
descriptor = "(Lkk;B)Z",
garbageValue = "-73"
)
@Export("loadGeography")
boolean loadGeography(AbstractArchive var1) {
this.iconMap.clear();
if (this.worldMapData_0 != null) {
this.worldMapData_0.loadGeography(var1);
if (this.worldMapData_0.isFullyLoaded()) {
this.getIconsForTiles(0, 0, 64, 64, this.worldMapData_0);
return true;
} else {
return false;
}
} else {
boolean var2 = true;
Iterator var3;
WorldMapData_1 var4;
for (var3 = this.worldMapData1List.iterator(); var3.hasNext(); var2 &= var4.isFullyLoaded()) {
var4 = (WorldMapData_1)var3.next();
var4.loadGeography(var1);
}
if (var2) {
var3 = this.worldMapData1List.iterator();
while (var3.hasNext()) {
var4 = (WorldMapData_1)var3.next();
this.getIconsForTiles(var4.getChunkX() * 8, var4.getChunkY() * 8, 8, 8, var4);
}
}
return var2;
}
}
@ObfuscatedName("y")
@ObfuscatedSignature(
descriptor = "(ILgb;[Loi;Lkk;Lkk;B)V",
garbageValue = "120"
)
@Export("drawTile")
void drawTile(int var1, WorldMapScaleHandler var2, IndexedSprite[] var3, AbstractArchive var4, AbstractArchive var5) {
this.pixelsPerTile = var1;
if (this.worldMapData_0 != null || !this.worldMapData1List.isEmpty()) {
int var7 = this.regionX;
int var8 = this.regionY;
DemotingHashTable var9 = WorldMapRegion_cachedSprites;
long var10 = (long)(var1 << 16 | var7 << 8 | var8);
SpritePixels var6 = (SpritePixels)var9.get(var10);
if (var6 == null) {
boolean var21 = true;
var21 &= this.loadGeography(var4);
int var11;
if (this.worldMapData_0 != null) {
var11 = this.worldMapData_0.groupId;
} else {
var11 = ((AbstractWorldMapData)this.worldMapData1List.getFirst()).groupId;
}
var21 &= var5.tryLoadGroup(var11);
if (var21) {
byte[] var22 = var5.takeFileFlat(var11);
WorldMapSprite var12 = LoginPacket.method4572(var22);
SpritePixels var13 = new SpritePixels(this.pixelsPerTile * 64, this.pixelsPerTile * 64);
var13.setRaster();
if (this.worldMapData_0 != null) {
this.method3528(var2, var3, var12);
} else {
this.method3529(var2, var3, var12);
}
int var14 = this.regionX;
int var15 = this.regionY;
int var16 = this.pixelsPerTile;
DemotingHashTable var17 = WorldMapRegion_cachedSprites;
long var19 = (long)(var16 << 16 | var14 << 8 | var15);
var17.put(var13, var19, var13.pixels.length * 4);
this.method3523();
}
}
}
}
@ObfuscatedName("v")
@ObfuscatedSignature(
descriptor = "(IIILjava/util/HashSet;I)V",
garbageValue = "1211659860"
)
void method3526(int var1, int var2, int var3, HashSet var4) {
if (var4 == null) {
var4 = new HashSet();
}
this.drawNonLinkMapIcons(var1, var2, var4, var3);
this.drawMapLinks(var1, var2, var4, var3);
}
@ObfuscatedName("f")
@ObfuscatedSignature(
descriptor = "(Ljava/util/HashSet;III)V",
garbageValue = "-1330950283"
)
@Export("flashElements")
void flashElements(HashSet var1, int var2, int var3) {
Iterator var4 = this.iconMap.values().iterator();
while (var4.hasNext()) {
AbstractWorldMapIcon var5 = (AbstractWorldMapIcon)var4.next();
if (var5.hasValidElement()) {
int var6 = var5.getElement();
if (var1.contains(var6)) {
WorldMapElement var7 = class54.WorldMapElement_get(var6);
this.drawBackgroundCircle(var7, var5.screenX, var5.screenY, var2, var3);
}
}
}
this.method3537(var1, var2, var3);
}
@ObfuscatedName("s")
@ObfuscatedSignature(
descriptor = "(Lgb;[Loi;Lga;B)V",
garbageValue = "-110"
)
void method3528(WorldMapScaleHandler var1, IndexedSprite[] var2, WorldMapSprite var3) {
int var4;
int var5;
for (var4 = 0; var4 < 64; ++var4) {
for (var5 = 0; var5 < 64; ++var5) {
this.drawTileGround(var4, var5, this.worldMapData_0, var1, var3);
this.method3532(var4, var5, this.worldMapData_0, var1);
}
}
for (var4 = 0; var4 < 64; ++var4) {
for (var5 = 0; var5 < 64; ++var5) {
this.method3530(var4, var5, this.worldMapData_0, var1, var2);
}
}
}
@ObfuscatedName("h")
@ObfuscatedSignature(
descriptor = "(Lgb;[Loi;Lga;I)V",
garbageValue = "-554775796"
)
void method3529(WorldMapScaleHandler var1, IndexedSprite[] var2, WorldMapSprite var3) {
Iterator var4 = this.worldMapData1List.iterator();
WorldMapData_1 var5;
int var6;
int var7;
while (var4.hasNext()) {
var5 = (WorldMapData_1)var4.next();
for (var6 = var5.getChunkX() * 8; var6 < var5.getChunkX() * 8 + 8; ++var6) {
for (var7 = var5.getChunkY() * 8; var7 < var5.getChunkY() * 8 + 8; ++var7) {
this.drawTileGround(var6, var7, var5, var1, var3);
this.method3532(var6, var7, var5, var1);
}
}
}
var4 = this.worldMapData1List.iterator();
while (var4.hasNext()) {
var5 = (WorldMapData_1)var4.next();
for (var6 = var5.getChunkX() * 8; var6 < var5.getChunkX() * 8 + 8; ++var6) {
for (var7 = var5.getChunkY() * 8; var7 < var5.getChunkY() * 8 + 8; ++var7) {
this.method3530(var6, var7, var5, var1, var2);
}
}
}
}
@ObfuscatedName("d")
@ObfuscatedSignature(
descriptor = "(IILgy;Lgb;[Loi;I)V",
garbageValue = "1044074793"
)
void method3530(int var1, int var2, AbstractWorldMapData var3, WorldMapScaleHandler var4, IndexedSprite[] var5) {
this.method3535(var1, var2, var3);
this.method3533(var1, var2, var3, var5);
}
@ObfuscatedName("q")
@ObfuscatedSignature(
descriptor = "(IILgy;Lgb;Lga;I)V",
garbageValue = "783242506"
)
@Export("drawTileGround")
void drawTileGround(int var1, int var2, AbstractWorldMapData var3, WorldMapScaleHandler var4, WorldMapSprite var5) {
int var6 = var3.floorUnderlayIds[0][var1][var2] - 1;
int var7 = var3.floorOverlayIds[0][var1][var2] - 1;
if (var6 == -1 && var7 == -1) {
Rasterizer2D.Rasterizer2D_fillRectangle(this.pixelsPerTile * var1, this.pixelsPerTile * (63 - var2), this.pixelsPerTile, this.pixelsPerTile, this.backgroundColor);
}
int var8 = 16711935;
if (var7 != -1) {
var8 = MouseRecorder.method2058(var7, this.backgroundColor);
}
if (var7 > -1 && var3.field2143[0][var1][var2] == 0) {
Rasterizer2D.Rasterizer2D_fillRectangle(this.pixelsPerTile * var1, this.pixelsPerTile * (63 - var2), this.pixelsPerTile, this.pixelsPerTile, var8);
} else {
int var9 = this.method3615(var1, var2, var3, var5);
if (var7 == -1) {
Rasterizer2D.Rasterizer2D_fillRectangle(this.pixelsPerTile * var1, this.pixelsPerTile * (63 - var2), this.pixelsPerTile, this.pixelsPerTile, var9);
} else {
var4.method3912(this.pixelsPerTile * var1, this.pixelsPerTile * (63 - var2), var9, var8, this.pixelsPerTile, this.pixelsPerTile, var3.field2143[0][var1][var2], var3.field2144[0][var1][var2]);
}
}
}
@ObfuscatedName("j")
@ObfuscatedSignature(
descriptor = "(IILgy;Lgb;B)V",
garbageValue = "-23"
)
void method3532(int var1, int var2, AbstractWorldMapData var3, WorldMapScaleHandler var4) {
for (int var5 = 1; var5 < var3.planes; ++var5) {
int var6 = var3.floorOverlayIds[var5][var1][var2] - 1;
if (var6 > -1) {
int var7 = MouseRecorder.method2058(var6, this.backgroundColor);
if (var3.field2143[var5][var1][var2] == 0) {
Rasterizer2D.Rasterizer2D_fillRectangle(this.pixelsPerTile * var1, this.pixelsPerTile * (63 - var2), this.pixelsPerTile, this.pixelsPerTile, var7);
} else {
var4.method3912(this.pixelsPerTile * var1, this.pixelsPerTile * (63 - var2), 0, var7, this.pixelsPerTile, this.pixelsPerTile, var3.field2143[var5][var1][var2], var3.field2144[var5][var1][var2]);
}
}
}
}
@ObfuscatedName("x")
@ObfuscatedSignature(
descriptor = "(IILgy;Lga;I)I",
garbageValue = "1061504265"
)
int method3615(int var1, int var2, AbstractWorldMapData var3, WorldMapSprite var4) {
return var3.floorUnderlayIds[0][var1][var2] == 0 ? this.backgroundColor : var4.getTileColor(var1, var2);
}
@ObfuscatedName("b")
@ObfuscatedSignature(
descriptor = "(IILgy;[Loi;I)V",
garbageValue = "-209468679"
)
void method3533(int var1, int var2, AbstractWorldMapData var3, IndexedSprite[] var4) {
for (int var5 = 0; var5 < var3.planes; ++var5) {
WorldMapDecoration[] var6 = var3.decorations[var5][var1][var2];
if (var6 != null && var6.length != 0) {
WorldMapDecoration[] var7 = var6;
for (int var8 = 0; var8 < var7.length; ++var8) {
WorldMapDecoration var9 = var7[var8];
if (!class9.method91(var9.decoration)) {
int var11 = var9.decoration;
boolean var10 = var11 == WorldMapDecorationType.field3251.id;
if (!var10) {
continue;
}
}
ObjectComposition var12 = HitSplatDefinition.getObjectDefinition(var9.objectDefinitionId);
if (var12.mapSceneId != -1) {
if (var12.mapSceneId != 46 && var12.mapSceneId != 52) {
var4[var12.mapSceneId].method7206(this.pixelsPerTile * var1, this.pixelsPerTile * (63 - var2), this.pixelsPerTile * 2, this.pixelsPerTile * 2);
} else {
var4[var12.mapSceneId].method7206(this.pixelsPerTile * var1, this.pixelsPerTile * (63 - var2), this.pixelsPerTile * 2 + 1, this.pixelsPerTile * 2 + 1);
}
}
}
}
}
}
@ObfuscatedName("t")
@ObfuscatedSignature(
descriptor = "(IILgy;I)V",
garbageValue = "1476060443"
)
void method3535(int var1, int var2, AbstractWorldMapData var3) {
for (int var4 = 0; var4 < var3.planes; ++var4) {
WorldMapDecoration[] var5 = var3.decorations[var4][var1][var2];
if (var5 != null && var5.length != 0) {
WorldMapDecoration[] var6 = var5;
for (int var7 = 0; var7 < var6.length; ++var7) {
WorldMapDecoration var8 = var6[var7];
int var10 = var8.decoration;
boolean var9 = var10 >= WorldMapDecorationType.field3246.id && var10 <= WorldMapDecorationType.field3232.id || var10 == WorldMapDecorationType.field3233.id;
if (var9) {
ObjectComposition var11 = HitSplatDefinition.getObjectDefinition(var8.objectDefinitionId);
int var12 = var11.int1 != 0 ? -3407872 : -3355444;
if (var8.decoration == WorldMapDecorationType.field3246.id) {
this.method3549(var1, var2, var8.rotation, var12);
}
if (var8.decoration == WorldMapDecorationType.field3231.id) {
this.method3549(var1, var2, var8.rotation, -3355444);
this.method3549(var1, var2, var8.rotation + 1, var12);
}
if (var8.decoration == WorldMapDecorationType.field3232.id) {
if (var8.rotation == 0) {
Rasterizer2D.Rasterizer2D_drawHorizontalLine(this.pixelsPerTile * var1, this.pixelsPerTile * (63 - var2), 1, var12);
}
if (var8.rotation == 1) {
Rasterizer2D.Rasterizer2D_drawHorizontalLine(this.pixelsPerTile * var1 + this.pixelsPerTile - 1, this.pixelsPerTile * (63 - var2), 1, var12);
}
if (var8.rotation == 2) {
Rasterizer2D.Rasterizer2D_drawHorizontalLine(this.pixelsPerTile + this.pixelsPerTile * var1 - 1, this.pixelsPerTile * (63 - var2) + this.pixelsPerTile - 1, 1, var12);
}
if (var8.rotation == 3) {
Rasterizer2D.Rasterizer2D_drawHorizontalLine(this.pixelsPerTile * var1, this.pixelsPerTile * (63 - var2) + this.pixelsPerTile - 1, 1, var12);
}
}
if (var8.decoration == WorldMapDecorationType.field3233.id) {
int var13 = var8.rotation % 2;
int var14;
if (var13 == 0) {
for (var14 = 0; var14 < this.pixelsPerTile; ++var14) {
Rasterizer2D.Rasterizer2D_drawHorizontalLine(var14 + this.pixelsPerTile * var1, (64 - var2) * this.pixelsPerTile - 1 - var14, 1, var12);
}
} else {
for (var14 = 0; var14 < this.pixelsPerTile; ++var14) {
Rasterizer2D.Rasterizer2D_drawHorizontalLine(var14 + this.pixelsPerTile * var1, var14 + this.pixelsPerTile * (63 - var2), 1, var12);
}
}
}
}
}
}
}
}
@ObfuscatedName("r")
@ObfuscatedSignature(
descriptor = "(IILjava/util/HashSet;II)V",
garbageValue = "-2113802496"
)
@Export("drawNonLinkMapIcons")
void drawNonLinkMapIcons(int var1, int var2, HashSet var3, int var4) {
float var5 = (float)var4 / 64.0F;
float var6 = var5 / 2.0F;
Iterator var7 = this.iconMap.entrySet().iterator();
while (var7.hasNext()) {
Entry var8 = (Entry)var7.next();
Coord var9 = (Coord)var8.getKey();
int var10 = (int)((float)var9.x * var5 + (float)var1 - var6);
int var11 = (int)((float)(var2 + var4) - (float)var9.y * var5 - var6);
AbstractWorldMapIcon var12 = (AbstractWorldMapIcon)var8.getValue();
if (var12 != null && var12.hasValidElement()) {
var12.screenX = var10;
var12.screenY = var11;
WorldMapElement var13 = class54.WorldMapElement_get(var12.getElement());
if (!var3.contains(var13.getObjectId())) {
this.method3608(var12, var10, var11, var5);
}
}
}
}
@ObfuscatedName("p")
@ObfuscatedSignature(
descriptor = "(Ljava/util/HashSet;IIS)V",
garbageValue = "22098"
)
void method3537(HashSet var1, int var2, int var3) {
Iterator var4 = this.icon0List.iterator();
while (var4.hasNext()) {
AbstractWorldMapIcon var5 = (AbstractWorldMapIcon)var4.next();
if (var5.hasValidElement()) {
WorldMapElement var6 = class54.WorldMapElement_get(var5.getElement());
if (var6 != null && var1.contains(var6.getObjectId())) {
this.drawBackgroundCircle(var6, var5.screenX, var5.screenY, var2, var3);
}
}
}
}
@ObfuscatedName("w")
@ObfuscatedSignature(
descriptor = "(Ler;IIIII)V",
garbageValue = "-1866681714"
)
@Export("drawBackgroundCircle")
void drawBackgroundCircle(WorldMapElement var1, int var2, int var3, int var4, int var5) {
SpritePixels var6 = var1.getSpriteBool(false);
if (var6 != null) {
var6.drawTransBgAt(var2 - var6.subWidth / 2, var3 - var6.subHeight / 2);
if (var4 % var5 < var5 / 2) {
Rasterizer2D.Rasterizer2D_drawCircleAlpha(var2, var3, 15, 16776960, 128);
Rasterizer2D.Rasterizer2D_drawCircleAlpha(var2, var3, 7, 16777215, 256);
}
}
}
@ObfuscatedName("i")
@ObfuscatedSignature(
descriptor = "(Lgm;IIFI)V",
garbageValue = "-2144977009"
)
void method3608(AbstractWorldMapIcon var1, int var2, int var3, float var4) {
WorldMapElement var5 = class54.WorldMapElement_get(var1.getElement());
this.method3617(var5, var2, var3);
this.method3581(var1, var5, var2, var3, var4);
}
@ObfuscatedName("aq")
@ObfuscatedSignature(
descriptor = "(Ler;III)V",
garbageValue = "-641155672"
)
void method3617(WorldMapElement var1, int var2, int var3) {
SpritePixels var4 = var1.getSpriteBool(false);
if (var4 != null) {
int var5 = this.method3558(var4, var1.horizontalAlignment);
int var6 = this.method3544(var4, var1.verticalAlignment);
var4.drawTransBgAt(var5 + var2, var3 + var6);
}
}
@ObfuscatedName("ad")
@ObfuscatedSignature(
descriptor = "(Lgm;Ler;IIFI)V",
garbageValue = "1539756998"
)
void method3581(AbstractWorldMapIcon var1, WorldMapElement var2, int var3, int var4, float var5) {
WorldMapLabel var6 = var1.getLabel();
if (var6 != null) {
if (var6.size.method3379(var5)) {
Font var7 = (Font)this.fonts.get(var6.size);
var7.drawLines(var6.text, var3 - var6.width / 2, var4, var6.width, var6.height, -16777216 | var2.field1625, 0, 1, 0, var7.ascent / 2);
}
}
}
@ObfuscatedName("al")
@ObfuscatedSignature(
descriptor = "(IILjava/util/HashSet;II)V",
garbageValue = "1388215575"
)
@Export("drawMapLinks")
void drawMapLinks(int var1, int var2, HashSet var3, int var4) {
float var5 = (float)var4 / 64.0F;
Iterator var6 = this.icon0List.iterator();
while (var6.hasNext()) {
AbstractWorldMapIcon var7 = (AbstractWorldMapIcon)var6.next();
if (var7.hasValidElement()) {
int var8 = var7.coord2.x % 64;
int var9 = var7.coord2.y % 64;
var7.screenX = (int)((float)var8 * var5 + (float)var1);
var7.screenY = (int)((float)(63 - var9) * var5 + (float)var2);
if (!var3.contains(var7.getElement())) {
this.method3608(var7, var7.screenX, var7.screenY, var5);
}
}
}
}
@ObfuscatedName("aa")
@ObfuscatedSignature(
descriptor = "(Loc;Lfs;I)I",
garbageValue = "2091936003"
)
int method3558(SpritePixels var1, HorizontalAlignment var2) {
switch(var2.value) {
case 0:
return 0;
case 1:
return -var1.subWidth / 2;
default:
return -var1.subWidth;
}
}
@ObfuscatedName("aw")
@ObfuscatedSignature(
descriptor = "(Loc;Lfc;I)I",
garbageValue = "-1105130513"
)
int method3544(SpritePixels var1, VerticalAlignment var2) {
switch(var2.value) {
case 0:
return -var1.subHeight / 2;
case 2:
return 0;
default:
return -var1.subHeight;
}
}
@ObfuscatedName("at")
@ObfuscatedSignature(
descriptor = "(IB)Lgz;",
garbageValue = "16"
)
WorldMapLabel method3588(int var1) {
WorldMapElement var2 = class54.WorldMapElement_get(var1);
return this.createMapLabel(var2);
}
@ObfuscatedName("as")
@ObfuscatedSignature(
descriptor = "(Ler;B)Lgz;",
garbageValue = "-27"
)
@Export("createMapLabel")
WorldMapLabel createMapLabel(WorldMapElement var1) {
if (var1.name != null && this.fonts != null && this.fonts.get(WorldMapLabelSize.WorldMapLabelSize_small) != null) {
WorldMapLabelSize var2 = WorldMapLabelSize.method3380(var1.textSize);
if (var2 == null) {
return null;
} else {
Font var3 = (Font)this.fonts.get(var2);
if (var3 == null) {
return null;
} else {
int var4 = var3.lineCount(var1.name, 1000000);
String[] var5 = new String[var4];
var3.breakLines(var1.name, (int[])null, var5);
int var6 = var5.length * var3.ascent / 2;
int var7 = 0;
String[] var8 = var5;
for (int var9 = 0; var9 < var8.length; ++var9) {
String var10 = var8[var9];
int var11 = var3.stringWidth(var10);
if (var11 > var7) {
var7 = var11;
}
}
return new WorldMapLabel(var1.name, var7, var6, var2);
}
}
} else {
return null;
}
}
@ObfuscatedName("ae")
@ObfuscatedSignature(
descriptor = "(IIIIII)Ljava/util/List;",
garbageValue = "-320312676"
)
List method3547(int var1, int var2, int var3, int var4, int var5) {
LinkedList var6 = new LinkedList();
if (var4 >= var1 && var5 >= var2) {
if (var4 < var3 + var1 && var5 < var3 + var2) {
Iterator var7 = this.iconMap.values().iterator();
AbstractWorldMapIcon var8;
while (var7.hasNext()) {
var8 = (AbstractWorldMapIcon)var7.next();
if (var8.hasValidElement() && var8.fitsScreen(var4, var5)) {
var6.add(var8);
}
}
var7 = this.icon0List.iterator();
while (var7.hasNext()) {
var8 = (AbstractWorldMapIcon)var7.next();
if (var8.hasValidElement() && var8.fitsScreen(var4, var5)) {
var6.add(var8);
}
}
return var6;
} else {
return var6;
}
} else {
return var6;
}
}
@ObfuscatedName("av")
@ObfuscatedSignature(
descriptor = "(I)Ljava/util/List;",
garbageValue = "799520324"
)
@Export("icons")
List icons() {
LinkedList var1 = new LinkedList();
var1.addAll(this.icon0List);
var1.addAll(this.iconMap.values());
return var1;
}
@ObfuscatedName("ak")
@ObfuscatedSignature(
descriptor = "(IIIII)V",
garbageValue = "1960094214"
)
void method3549(int var1, int var2, int var3, int var4) {
var3 %= 4;
if (var3 == 0) {
Rasterizer2D.Rasterizer2D_drawVerticalLine(this.pixelsPerTile * var1, this.pixelsPerTile * (63 - var2), this.pixelsPerTile, var4);
}
if (var3 == 1) {
Rasterizer2D.Rasterizer2D_drawHorizontalLine(this.pixelsPerTile * var1, this.pixelsPerTile * (63 - var2), this.pixelsPerTile, var4);
}
if (var3 == 2) {
Rasterizer2D.Rasterizer2D_drawVerticalLine(this.pixelsPerTile + this.pixelsPerTile * var1 - 1, this.pixelsPerTile * (63 - var2), this.pixelsPerTile, var4);
}
if (var3 == 3) {
Rasterizer2D.Rasterizer2D_drawHorizontalLine(this.pixelsPerTile * var1, this.pixelsPerTile * (63 - var2) + this.pixelsPerTile - 1, this.pixelsPerTile, var4);
}
}
@ObfuscatedName("n")
@ObfuscatedSignature(
descriptor = "(ILms;Lkx;S)V",
garbageValue = "31696"
)
static void method3637(int var0, ArchiveDisk var1, Archive var2) {
byte[] var3 = null;
synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) {
for (ArchiveDiskAction var5 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.last(); var5 != null; var5 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.previous()) {
if ((long)var0 == var5.key && var1 == var5.archiveDisk && var5.type == 0) {
var3 = var5.data;
break;
}
}
}
if (var3 != null) {
var2.load(var1, var0, var3, true);
} else {
byte[] var4 = var1.read(var0);
var2.load(var1, var0, var4, true);
}
}
@ObfuscatedName("c")
static final void method3602(long var0) {
try {
Thread.sleep(var0);
} catch (InterruptedException var3) {
}
}
@ObfuscatedName("g")
@ObfuscatedSignature(
descriptor = "(I)Z",
garbageValue = "-691370561"
)
public static boolean method3595() {
try {
if (class247.musicPlayerStatus == 2) {
if (class281.musicTrack == null) {
class281.musicTrack = MusicTrack.readTrack(class247.musicTrackArchive, class247.musicTrackGroupId, GrandExchangeOfferOwnWorldComparator.musicTrackFileId);
if (class281.musicTrack == null) {
return false;
}
}
if (class273.soundCache == null) {
class273.soundCache = new SoundCache(class247.soundEffectsArchive, class247.musicSamplesArchive);
}
if (class135.midiPcmStream.loadMusicTrack(class281.musicTrack, class247.musicPatchesArchive, class273.soundCache, 22050)) {
class135.midiPcmStream.clearAll();
class135.midiPcmStream.setPcmStreamVolume(class196.musicTrackVolume);
class135.midiPcmStream.setMusicTrack(class281.musicTrack, class20.musicTrackBoolean);
class247.musicPlayerStatus = 0;
class281.musicTrack = null;
class273.soundCache = null;
class247.musicTrackArchive = null;
return true;
}
}
} catch (Exception var1) {
var1.printStackTrace();
class135.midiPcmStream.clear();
class247.musicPlayerStatus = 0;
class281.musicTrack = null;
class273.soundCache = null;
class247.musicTrackArchive = null;
}
return false;
}
@ObfuscatedName("a")
@ObfuscatedSignature(
descriptor = "(ILbg;ZS)I",
garbageValue = "-23608"
)
static int method3638(int var0, Script var1, boolean var2) {
boolean var3 = true;
Widget var4;
if (var0 >= 2000) {
var0 -= 1000;
var4 = class87.getWidget(Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize]);
var3 = false;
} else {
var4 = var2 ? PacketWriter.scriptDotWidget : class9.scriptActiveWidget;
}
int var11;
if (var0 == ScriptOpcodes.CC_SETOP) {
var11 = Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize] - 1;
if (var11 >= 0 && var11 <= 9) {
var4.setAction(var11, Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize]);
return 1;
} else {
--Interpreter.Interpreter_stringStackSize;
return 1;
}
} else {
int var6;
if (var0 == ScriptOpcodes.CC_SETDRAGGABLE) {
class240.Interpreter_intStackSize -= 2;
var11 = Interpreter.Interpreter_intStack[class240.Interpreter_intStackSize];
var6 = Interpreter.Interpreter_intStack[class240.Interpreter_intStackSize + 1];
var4.parent = ParamComposition.getWidgetChild(var11, var6);
return 1;
} else if (var0 == ScriptOpcodes.CC_SETDRAGGABLEBEHAVIOR) {
var4.isScrollBar = Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize] == 1;
return 1;
} else if (var0 == ScriptOpcodes.CC_SETDRAGDEADZONE) {
var4.dragZoneSize = Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize];
return 1;
} else if (var0 == ScriptOpcodes.CC_SETDRAGDEADTIME) {
var4.dragThreshold = Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize];
return 1;
} else if (var0 == ScriptOpcodes.CC_SETOPBASE) {
var4.dataText = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
return 1;
} else if (var0 == ScriptOpcodes.CC_SETTARGETVERB) {
var4.spellActionName = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
return 1;
} else if (var0 == ScriptOpcodes.CC_CLEAROPS) {
var4.actions = null;
return 1;
} else if (var0 == 1308) {
var4.prioritizeMenuEntry = Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize] == 1;
return 1;
} else if (var0 == 1309) {
--class240.Interpreter_intStackSize;
return 1;
} else {
int var7;
byte[] var8;
if (var0 != ScriptOpcodes.CC_SETOPKEY) {
byte var5;
if (var0 == ScriptOpcodes.CC_SETOPTKEY) {
class240.Interpreter_intStackSize -= 2;
var5 = 10;
var8 = new byte[]{(byte)Interpreter.Interpreter_intStack[class240.Interpreter_intStackSize]};
byte[] var9 = new byte[]{(byte)Interpreter.Interpreter_intStack[class240.Interpreter_intStackSize + 1]};
WorldMapID.Widget_setKey(var4, var5, var8, var9);
return 1;
} else if (var0 == ScriptOpcodes.CC_SETOPKEYRATE) {
class240.Interpreter_intStackSize -= 3;
var11 = Interpreter.Interpreter_intStack[class240.Interpreter_intStackSize] - 1;
var6 = Interpreter.Interpreter_intStack[class240.Interpreter_intStackSize + 1];
var7 = Interpreter.Interpreter_intStack[class240.Interpreter_intStackSize + 2];
if (var11 >= 0 && var11 <= 9) {
class10.Widget_setKeyRate(var4, var11, var6, var7);
return 1;
} else {
throw new RuntimeException();
}
} else if (var0 == ScriptOpcodes.CC_SETOPTKEYRATE) {
var5 = 10;
var6 = Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize];
var7 = Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize];
class10.Widget_setKeyRate(var4, var5, var6, var7);
return 1;
} else if (var0 == ScriptOpcodes.CC_SETOPKEYIGNOREHELD) {
--class240.Interpreter_intStackSize;
var11 = Interpreter.Interpreter_intStack[class240.Interpreter_intStackSize] - 1;
if (var11 >= 0 && var11 <= 9) {
ScriptEvent.Widget_setKeyIgnoreHeld(var4, var11);
return 1;
} else {
throw new RuntimeException();
}
} else if (var0 == ScriptOpcodes.CC_SETOPTKEYIGNOREHELD) {
var5 = 10;
ScriptEvent.Widget_setKeyIgnoreHeld(var4, var5);
return 1;
} else {
return 2;
}
} else {
byte[] var10 = null;
var8 = null;
if (var3) {
class240.Interpreter_intStackSize -= 10;
for (var7 = 0; var7 < 10 && Interpreter.Interpreter_intStack[var7 + class240.Interpreter_intStackSize] >= 0; var7 += 2) {
}
if (var7 > 0) {
var10 = new byte[var7 / 2];
var8 = new byte[var7 / 2];
for (var7 -= 2; var7 >= 0; var7 -= 2) {
var10[var7 / 2] = (byte)Interpreter.Interpreter_intStack[var7 + class240.Interpreter_intStackSize];
var8[var7 / 2] = (byte)Interpreter.Interpreter_intStack[var7 + class240.Interpreter_intStackSize + 1];
}
}
} else {
class240.Interpreter_intStackSize -= 2;
var10 = new byte[]{(byte)Interpreter.Interpreter_intStack[class240.Interpreter_intStackSize]};
var8 = new byte[]{(byte)Interpreter.Interpreter_intStack[class240.Interpreter_intStackSize + 1]};
}
var7 = Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize] - 1;
if (var7 >= 0 && var7 <= 9) {
WorldMapID.Widget_setKey(var4, var7, var10, var8);
return 1;
} else {
throw new RuntimeException();
}
}
}
}
}
}