Files
runelite/runescape-client/src/main/java/BufferedSource.java
Lucwousin 596689a4f7 rs-client: Cleanup (#1087)
* rs-client: name SpriteBuffer

* rs-client: (re)name spritebuffer methods

* rs-client/deob: Add missed @Export's, make updatemappings fix this next time

* rs-client: run intellij redundant else inspection

* rs-client: invert some script interpreter if's

* deob: checkstyle fixes

* rs-client: SpriteBuffer_loadSprite -> SpriteBuffer_bufferFile
2019-07-23 19:43:31 +02:00

322 lines
8.4 KiB
Java

import java.io.EOFException;
import java.io.IOException;
import java.io.InputStream;
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;
@ObfuscatedName("ks")
@Implements("BufferedSource")
public class BufferedSource implements Runnable {
@ObfuscatedName("q")
@Export("thread")
Thread thread;
@ObfuscatedName("w")
@Export("inputStream")
InputStream inputStream;
@ObfuscatedName("e")
@ObfuscatedGetter(
intValue = 491736021
)
@Export("capacity")
int capacity;
@ObfuscatedName("p")
@Export("buffer")
byte[] buffer;
@ObfuscatedName("k")
@ObfuscatedGetter(
intValue = -570790809
)
@Export("position")
int position;
@ObfuscatedName("l")
@ObfuscatedGetter(
intValue = -902879681
)
@Export("limit")
int limit;
@ObfuscatedName("b")
@Export("exception")
IOException exception;
BufferedSource(InputStream var1, int var2) {
this.position = 0;
this.limit = 0;
this.inputStream = var1;
this.capacity = var2 + 1;
this.buffer = new byte[this.capacity];
this.thread = new Thread(this);
this.thread.setDaemon(true);
this.thread.start();
}
@ObfuscatedName("q")
@ObfuscatedSignature(
signature = "(II)Z",
garbageValue = "-1294773775"
)
@Export("isAvailable")
boolean isAvailable(int var1) throws IOException {
if (var1 == 0) {
return true;
}
if (var1 > 0 && var1 < this.capacity) {
synchronized(this) {
int var3;
if (this.position <= this.limit) {
var3 = this.limit - this.position;
} else {
var3 = this.capacity - this.position + this.limit;
}
if (var3 < var1) {
if (this.exception != null) {
throw new IOException(this.exception.toString());
}
this.notifyAll();
return false;
}
return true;
}
}
throw new IOException();
}
@ObfuscatedName("w")
@ObfuscatedSignature(
signature = "(I)I",
garbageValue = "-72711599"
)
@Export("available")
int available() throws IOException {
synchronized(this) {
int var2;
if (this.position <= this.limit) {
var2 = this.limit - this.position;
} else {
var2 = this.capacity - this.position + this.limit;
}
if (var2 <= 0 && this.exception != null) {
throw new IOException(this.exception.toString());
}
this.notifyAll();
return var2;
}
}
@ObfuscatedName("e")
@ObfuscatedSignature(
signature = "(I)I",
garbageValue = "797723305"
)
@Export("readUnsignedByte")
int readUnsignedByte() throws IOException {
synchronized(this) {
if (this.limit == this.position) {
if (this.exception != null) {
throw new IOException(this.exception.toString());
}
return -1;
}
int var2 = this.buffer[this.position] & 255;
this.position = (this.position + 1) % this.capacity;
this.notifyAll();
return var2;
}
}
@ObfuscatedName("p")
@ObfuscatedSignature(
signature = "([BIIS)I",
garbageValue = "28253"
)
@Export("read")
int read(byte[] var1, int var2, int var3) throws IOException {
if (var3 >= 0 && var2 >= 0 && var3 + var2 <= var1.length) {
synchronized(this) {
int var5;
if (this.position <= this.limit) {
var5 = this.limit - this.position;
} else {
var5 = this.capacity - this.position + this.limit;
}
if (var3 > var5) {
var3 = var5;
}
if (var3 == 0 && this.exception != null) {
throw new IOException(this.exception.toString());
}
if (var3 + this.position <= this.capacity) {
System.arraycopy(this.buffer, this.position, var1, var2, var3);
} else {
int var6 = this.capacity - this.position;
System.arraycopy(this.buffer, this.position, var1, var2, var6);
System.arraycopy(this.buffer, 0, var1, var6 + var2, var3 - var6);
}
this.position = (var3 + this.position) % this.capacity;
this.notifyAll();
return var3;
}
}
throw new IOException();
}
@ObfuscatedName("k")
@ObfuscatedSignature(
signature = "(I)V",
garbageValue = "-1361407903"
)
@Export("close")
void close() {
synchronized(this) {
if (this.exception == null) {
this.exception = new IOException("");
}
this.notifyAll();
}
try {
this.thread.join();
} catch (InterruptedException var3) {
}
}
public void run() {
while (true) {
int var1;
synchronized(this) {
while (true) {
if (this.exception != null) {
return;
}
if (this.position == 0) {
var1 = this.capacity - this.limit - 1;
} else if (this.position <= this.limit) {
var1 = this.capacity - this.limit;
} else {
var1 = this.position - this.limit - 1;
}
if (var1 > 0) {
break;
}
try {
this.wait();
} catch (InterruptedException var10) {
}
}
}
int var7;
try {
var7 = this.inputStream.read(this.buffer, this.limit, var1);
if (var7 == -1) {
throw new EOFException();
}
} catch (IOException var11) {
IOException var3 = var11;
synchronized(this) {
this.exception = var3;
return;
}
}
synchronized(this) {
this.limit = (var7 + this.limit) % this.capacity;
}
}
}
@ObfuscatedName("w")
@ObfuscatedSignature(
signature = "(Lhp;Lhp;ZII)V",
garbageValue = "-273498913"
)
static void method5892(AbstractArchive var0, AbstractArchive var1, boolean var2, int var3) {
if (Login.field1179) {
if (var3 == 4) {
Login.loginIndex = 4;
}
} else {
Login.loginIndex = var3;
Rasterizer2D.Rasterizer2D_clear();
byte[] var4 = var0.takeFileByNames("title.jpg", "");
GrandExchangeOfferWorldComparator.leftTitleSprite = BuddyRankComparator.convertJpgToSprite(var4);
NPC.rightTitleSprite = GrandExchangeOfferWorldComparator.leftTitleSprite.mirrorHorizontally();
if ((Client.worldProperties & 536870912) != 0) {
GroundItem.logoSprite = class215.SpriteBuffer_getIndexedSpriteByName(var1, "logo_deadman_mode", "");
} else {
GroundItem.logoSprite = class215.SpriteBuffer_getIndexedSpriteByName(var1, "logo", "");
}
Login.titleboxSprite = class215.SpriteBuffer_getIndexedSpriteByName(var1, "titlebox", "");
VarpDefinition.titlebuttonSprite = class215.SpriteBuffer_getIndexedSpriteByName(var1, "titlebutton", "");
int var6 = var1.getGroupId("runes");
int var7 = var1.getFileId(var6, "");
IndexedSprite[] var5 = class289.SpriteBuffer_getIndexedSpriteArray(var1, var6, var7);
Login.runesSprite = var5;
var7 = var1.getGroupId("title_mute");
int var8 = var1.getFileId(var7, "");
IndexedSprite[] var9 = class289.SpriteBuffer_getIndexedSpriteArray(var1, var7, var8);
Login.title_muteSprite = var9;
Login.options_buttons_0Sprite = class215.SpriteBuffer_getIndexedSpriteByName(var1, "options_radio_buttons,0", "");
Message.field606 = class215.SpriteBuffer_getIndexedSpriteByName(var1, "options_radio_buttons,4", "");
Decimator.options_buttons_2Sprite = class215.SpriteBuffer_getIndexedSpriteByName(var1, "options_radio_buttons,2", "");
Login.field1185 = class215.SpriteBuffer_getIndexedSpriteByName(var1, "options_radio_buttons,6", "");
class237.field3191 = Login.options_buttons_0Sprite.subWidth;
WorldMapDecoration.field212 = Login.options_buttons_0Sprite.subHeight;
Ignored.loginScreenRunesAnimation = new LoginScreenAnimation(Login.runesSprite);
if (var2) {
Login.Login_username = "";
Login.Login_password = "";
}
GrandExchangeOffer.field65 = 0;
WorldMapManager.otp = "";
Login.field1201 = true;
Login.worldSelectOpen = false;
if (!WorldMapLabelSize.clientPreferences.titleMusicDisabled) {
WorldMapRegion.method533(2, WorldMapRegion.archive6, "scape main", "", 255, false);
} else {
class40.method729(2);
}
if (NetCache.NetCache_socket != null) {
try {
Buffer var10 = new Buffer(4);
var10.writeByte(3);
var10.writeMedium(0);
NetCache.NetCache_socket.write(var10.array, 0, 4);
} catch (IOException var13) {
try {
NetCache.NetCache_socket.close();
} catch (Exception var12) {
}
++NetCache.NetCache_ioExceptions;
NetCache.NetCache_socket = null;
}
}
Login.field1179 = true;
Login.xPadding = (GrandExchangeEvent.canvasWidth - 765) / 2;
Login.loginBoxX = Login.xPadding + 202;
ScriptEvent.loginBoxCenter = Login.loginBoxX + 180;
GrandExchangeOfferWorldComparator.leftTitleSprite.drawAt(Login.xPadding, 0);
NPC.rightTitleSprite.drawAt(Login.xPadding + 382, 0);
GroundItem.logoSprite.drawAt(Login.xPadding + 382 - GroundItem.logoSprite.subWidth / 2, 18);
}
}
}