import java.io.File; import java.util.Hashtable; import net.runelite.mapping.Export; import net.runelite.mapping.Implements; import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedSignature; @ObfuscatedName("fr") @Implements("FileSystem") public class FileSystem { @ObfuscatedName("u") @Export("FileSystem_hasPermissions") public static boolean FileSystem_hasPermissions; @ObfuscatedName("f") @Export("FileSystem_cacheDir") public static File FileSystem_cacheDir; @ObfuscatedName("b") @Export("FileSystem_cacheFiles") static Hashtable FileSystem_cacheFiles; static { FileSystem_hasPermissions = false; FileSystem_cacheFiles = new Hashtable(16); } @ObfuscatedName("u") @ObfuscatedSignature( signature = "(II)I", garbageValue = "-585871581" ) @Export("getVarbit") public static int getVarbit(int var0) { VarbitDefinition var2 = (VarbitDefinition)VarbitDefinition.VarbitDefinition_cached.get((long)var0); VarbitDefinition var1; if (var2 != null) { var1 = var2; } else { byte[] var7 = VarbitDefinition.VarbitDefinition_archive.takeFile(14, var0); var2 = new VarbitDefinition(); if (var7 != null) { var2.decode(new Buffer(var7)); } VarbitDefinition.VarbitDefinition_cached.put(var2, (long)var0); var1 = var2; } int var3 = var1.baseVar; int var4 = var1.startBit; int var5 = var1.endBit; int var6 = Varps.Varps_masks[var5 - var4]; return Varps.Varps_main[var3] >> var4 & var6; } @ObfuscatedName("b") @ObfuscatedSignature( signature = "(IIIIIIB)I", garbageValue = "46" ) public static int method3549(int var0, int var1, int var2, int var3, int var4, int var5) { if ((var5 & 1) == 1) { int var6 = var3; var3 = var4; var4 = var6; } var2 &= 3; if (var2 == 0) { return var1; } else if (var2 == 1) { return 7 - var0 - (var3 - 1); } else { return var2 == 2 ? 7 - var1 - (var4 - 1) : var0; } } @ObfuscatedName("p") @ObfuscatedSignature( signature = "([BIIIIIIILel;[Lfh;I)V", garbageValue = "1216246502" ) static final void method3552(byte[] var0, int var1, int var2, int var3, int var4, int var5, int var6, int var7, Scene var8, CollisionMap[] var9) { Buffer var10 = new Buffer(var0); int var11 = -1; while (true) { int var12 = var10.method5710(); if (var12 == 0) { return; } var11 += var12; int var13 = 0; while (true) { int var14 = var10.readUShortSmart(); if (var14 == 0) { break; } var13 += var14 - 1; int var15 = var13 & 63; int var16 = var13 >> 6 & 63; int var17 = var13 >> 12; int var18 = var10.readUnsignedByte(); int var19 = var18 >> 2; int var20 = var18 & 3; if (var17 == var4 && var16 >= var5 && var16 < var5 + 8 && var15 >= var6 && var15 < var6 + 8) { ObjectDefinition var21 = Occluder.getObjectDefinition(var11); int var22 = var2 + PacketWriter.method2292(var16 & 7, var15 & 7, var7, var21.sizeX, var21.sizeY, var20); int var23 = var3 + method3549(var16 & 7, var15 & 7, var7, var21.sizeX, var21.sizeY, var20); if (var22 > 0 && var23 > 0 && var22 < 103 && var23 < 103) { int var24 = var1; if ((Tiles.Tiles_renderFlags[1][var22][var23] & 2) == 2) { var24 = var1 - 1; } CollisionMap var25 = null; if (var24 >= 0) { var25 = var9[var24]; } EnumDefinition.method4656(var1, var22, var23, var11, var20 + var7 & 3, var19, var8, var25); } } } } } @ObfuscatedName("ac") @ObfuscatedSignature( signature = "(II)I", garbageValue = "1410165290" ) static int method3551(int var0) { return (int)((Math.log((double)var0) / Interpreter.field1082 - 7.0D) * 256.0D); } @ObfuscatedName("fp") @ObfuscatedSignature( signature = "(IIII)V", garbageValue = "-782793212" ) @Export("queueSoundEffect") static void queueSoundEffect(int var0, int var1, int var2) { if (Client.soundEffectVolume != 0 && var1 != 0 && Client.soundEffectCount < 50) { Client.soundEffectIds[Client.soundEffectCount] = var0; Client.queuedSoundEffectLoops[Client.soundEffectCount] = var1; Client.queuedSoundEffectDelays[Client.soundEffectCount] = var2; Client.soundEffects[Client.soundEffectCount] = null; Client.soundLocations[Client.soundEffectCount] = 0; ++Client.soundEffectCount; } } @ObfuscatedName("gb") @ObfuscatedSignature( signature = "(IIIIZI)V", garbageValue = "444981203" ) @Export("setViewportShape") static final void setViewportShape(int var0, int var1, int var2, int var3, boolean var4) { if (var2 < 1) { var2 = 1; } if (var3 < 1) { var3 = 1; } int var5 = var3 - 334; int var6; if (var5 < 0) { var6 = Client.field880; } else if (var5 >= 100) { var6 = Client.field893; } else { var6 = (Client.field893 - Client.field880) * var5 / 100 + Client.field880; } int var7 = var3 * var6 * 512 / (var2 * 334); int var8; int var9; short var10; if (var7 < Client.field785) { var10 = Client.field785; var6 = var10 * var2 * 334 / (var3 * 512); if (var6 > Client.field897) { var6 = Client.field897; var8 = var3 * var6 * 512 / (var10 * 334); var9 = (var2 - var8) / 2; if (var4) { Rasterizer2D.Rasterizer2D_resetClip(); Rasterizer2D.Rasterizer2D_fillRectangle(var0, var1, var9, var3, -16777216); Rasterizer2D.Rasterizer2D_fillRectangle(var0 + var2 - var9, var1, var9, var3, -16777216); } var0 += var9; var2 -= var9 * 2; } } else if (var7 > Client.field679) { var10 = Client.field679; var6 = var10 * var2 * 334 / (var3 * 512); if (var6 < Client.field896) { var6 = Client.field896; var8 = var10 * var2 * 334 / (var6 * 512); var9 = (var3 - var8) / 2; if (var4) { Rasterizer2D.Rasterizer2D_resetClip(); Rasterizer2D.Rasterizer2D_fillRectangle(var0, var1, var2, var9, -16777216); Rasterizer2D.Rasterizer2D_fillRectangle(var0, var3 + var1 - var9, var2, var9, -16777216); } var1 += var9; var3 -= var9 * 2; } } Client.viewportZoom = var3 * var6 / 334; if (var2 != Client.viewportWidth || var3 != Client.viewportHeight) { WorldMapManager.method676(var2, var3); } Client.viewportOffsetX = var0; Client.viewportOffsetY = var1; Client.viewportWidth = var2; Client.viewportHeight = var3; } }