···3344Refactoring the 377 deob. And extending it without adding rice.
5566+If you ever need to reach me, contact my discord at : "Henning B#4920"
77+68-----
79810### Client Config
···16181719* Mouse wheel zoom, scroll, and move view
1820* Sound engine thanks to galkon (will be replaced with proper 400+)
1919-* 508+ and legacy text rendering engine: supports
2121+* 400+ and the original legacy text rendering engine: supports
2022 * all the old @red@ @str@ etc
2123 * all the new : (credits to a 508 deob and stewie for his half assed work)
2224 * <col=######></col> Custom colors
···66 public int decompressedLength;
77 public int totalInLo32;
88 public int totalInHi32;
99- public byte decompressed[];
99+ public byte buf[];
1010 public int nextOut;
1111- public int lenght;
1111+ public int availOut;
1212 public int totalOutLo32;
1313 public int totalOutHigh32;
1414- public byte aByte57;
1515- public int anInt58;
1616- public boolean aBoolean59;
1414+ public byte stateOutCh;
1515+ public int stateOutLen;
1616+ public boolean blockRandomised;
1717 public int bsBuff;
1818 public int bsLive;
1919- public int anInt62;
1919+ public int blockSize100k;
2020 public int currentBlock;
2121- public int anInt64;
2222- public int anInt65;
2323- public int anInt66;
2424- public int anIntArray67[] = new int[256];
2525- public int anInt68;
2626- public int anIntArray69[] = new int[257];
2727- public static int anIntArray71[];
2828- public int anInt72;
2929- public boolean aBooleanArray73[] = new boolean[256];
3030- public boolean aBooleanArray74[] = new boolean[16];
3131- public byte aByteArray75[] = new byte[256];
3232- public byte aByteArray76[] = new byte[4096];
3333- public int anIntArray77[] = new int[16];
3434- public byte aByteArray78[] = new byte[18002];
3535- public byte aByteArray79[] = new byte[18002];
3636- public byte aByteArrayArray80[][] = new byte[6][258];
3737- public int anIntArrayArray81[][] = new int[6][258];
3838- public int anIntArrayArray82[][] = new int[6][258];
3939- public int anIntArrayArray83[][] = new int[6][258];
4040- public int anIntArray84[] = new int[6];
4141- public int anInt85;
2121+ public int origPtr;
2222+ public int tPos;
2323+ public int k0;
2424+ public int unzftab[] = new int[256];
2525+ public int nBlockUsed;
2626+ public int cftab[] = new int[257];
2727+ public static int tt[];
2828+ public int nInUse;
2929+ public boolean inUse[] = new boolean[256];
3030+ public boolean inUse16[] = new boolean[16];
3131+ public byte seqToUnseq[] = new byte[256];
3232+ public byte mtfa[] = new byte[4096];
3333+ public int mtfbase[] = new int[16];
3434+ public byte selector[] = new byte[18002];
3535+ public byte selectorMtf[] = new byte[18002];
3636+ public byte len[][] = new byte[6][258];
3737+ public int limit[][] = new int[6][258];
3838+ public int base[][] = new int[6][258];
3939+ public int perm[][] = new int[6][258];
4040+ public int minLens[] = new int[6];
4141+ public int nBlock;
4242}
···276276 }
277277278278 public void drawShadowedString(String string, int x, int y, boolean shadow, int colour) {
279279+ if (!shadow) {
280280+ drawString(string, x, y, colour);
281281+ return;
282282+ }
279283 if (this.moderatorIcon != null) {
280284 this.drawString(string, x, y, colour, 0);
281285 } else {
···1515 public int displayedMovementFrames;
1616 public int anInt1590;
1717 public boolean[] runningQueue = new boolean[10];
1818- public boolean aBoolean1592 = false;
1818+ public boolean dynamic = false;
1919 public int textEffect;
2020 public int modelHeight = 200;
2121 public int endCycle = -1000;
···3535 public int anInt1609 = -1;
3636 public int worldX;
3737 public int worldY;
3838- public int anInt1612;
3838+ public int currentRotation;
3939 public int anInt1613;
4040 public int graphic = -1;
4141 public int currentAnimation;
+20-55
src/main/java/com/jagex/runescape/net/Buffer.java
···11package com.jagex.runescape.net;
2233import com.jagex.runescape.collection.CacheableNode;
44-import com.jagex.runescape.util.LinkedList;
5465import java.math.BigInteger;
7687public class Buffer extends CacheableNode {
981091111- public byte buffer[];
1010+ public byte[] buffer;
1211 public int currentPosition;
1312 public int bitPosition;
1414- public static int CRC32_TABLE[] = new int[256];
1515- public static final int BIT_MASKS[] = { 0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383,
1313+ private static final int[] BIT_MASKS = {0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383,
1614 32767, 65535, 0x1ffff, 0x3ffff, 0x7ffff, 0xfffff, 0x1fffff, 0x3fffff, 0x7fffff, 0xffffff, 0x1ffffff,
1717- 0x3ffffff, 0x7ffffff, 0xfffffff, 0x1fffffff, 0x3fffffff, 0x7fffffff, -1 };
1515+ 0x3ffffff, 0x7ffffff, 0xfffffff, 0x1fffffff, 0x3fffffff, 0x7fffffff, -1};
1816 public ISAACCipher random;
1919- public static int smallBufferCount;
2020- public static int mediumBufferCount;
2121- public static int largeBufferCount;
2222- public static LinkedList smallBuffers = new LinkedList();
2323- public static LinkedList mediumBuffers = new LinkedList();
2424- public static LinkedList largeBuffers = new LinkedList();
251726182719 public static Buffer allocate(int sizeMode) {
2828- synchronized (mediumBuffers) {
2929- Buffer buffer = null;
3030- if (sizeMode == 0 && smallBufferCount > 0) {
3131- smallBufferCount--;
3232- buffer = (Buffer) smallBuffers.pop();
3333- } else if (sizeMode == 1 && mediumBufferCount > 0) {
3434- mediumBufferCount--;
3535- buffer = (Buffer) mediumBuffers.pop();
3636- } else if (sizeMode == 2 && largeBufferCount > 0) {
3737- largeBufferCount--;
3838- buffer = (Buffer) largeBuffers.pop();
3939- }
4040- if (buffer != null) {
4141- buffer.currentPosition = 0;
4242- return buffer;
4343- }
4444- }
4520 Buffer buffer = new Buffer();
4621 buffer.currentPosition = 0;
4722 if (sizeMode == 0)
···5631 public Buffer() {
5732 }
58335959- public Buffer(byte buffer[]) {
3434+ public Buffer(byte[] buffer) {
6035 this.buffer = buffer;
6136 this.currentPosition = 0;
6237 }
···12095 buffer[currentPosition++] = 10;
12196 }
12297123123- public void putBytes(byte bytes[], int start, int length) {
9898+ public void putBytes(byte[] bytes, int start, int length) {
12499 for (int pos = start; pos < start + length; pos++)
125100 buffer[currentPosition++] = bytes[pos];
126101 }
···170145171146 public String getString() {
172147 int start = currentPosition;
173173- while (buffer[currentPosition++] != 10);
148148+ moveBufferToTarget((byte) 10);
174149 return new String(buffer, start, currentPosition - start - 1);
175150 }
176151152152+ private void moveBufferToTarget(byte target) {
153153+ if(buffer[currentPosition++] != target){
154154+ moveBufferToTarget(target);
155155+ }
156156+ }
157157+177158 public byte[] getStringBytes() {
178159 int start = currentPosition;
179179- while (buffer[currentPosition++] != 10);
180180- byte bytes[] = new byte[currentPosition - start - 1];
181181- for (int pos = start; pos < currentPosition - 1; pos++)
182182- bytes[pos - start] = buffer[pos];
160160+ moveBufferToTarget((byte) 10);
161161+ byte[] bytes = new byte[currentPosition - start - 1];
162162+ if (currentPosition - 1 - start >= 0)
163163+ System.arraycopy(buffer, start, bytes, 0, currentPosition - 1 - start);
183164 return bytes;
184165 }
185166186186- public void getBytes(byte bytes[], int start, int len) {
167167+ public void getBytes(byte[] bytes, int start, int len) {
187168 for (int pos = start; pos < start + len; pos++)
188169 bytes[pos] = buffer[currentPosition++];
189170 }
···232213 public void encrypt(BigInteger modulus, BigInteger key) {
233214 int length = currentPosition;
234215 currentPosition = 0;
235235- byte bytes[] = new byte[length];
216216+ byte[] bytes = new byte[length];
236217237218 getBytes(bytes, 0, length);
238219···351332 + ((buffer[currentPosition - 1] & 0xff) << 8) + (buffer[currentPosition - 2] & 0xff);
352333 }
353334354354- public void getBytesReverse(byte bytes[], int start, int len) {
335335+ public void getBytesReverse(byte[] bytes, int start, int len) {
355336 for (int pos = (start + len) - 1; pos >= start; pos--)
356337 bytes[pos] = buffer[currentPosition++];
357338 }
358339359359- public void getBytesAdded(byte bytes[], int start, int len) {
340340+ public void getBytesAdded(byte[] bytes, int start, int len) {
360341 for (int pos = start; pos < start + len; pos++)
361342 bytes[pos] = (byte) (buffer[currentPosition++] - 128);
362343 }
363363-364344365345366366-367367- static {
368368- int pos = 0;
369369- while (pos < 256) {
370370- int value = pos;
371371- for (int pass = 0; pass < 8; pass++)
372372- if ((value & 1) == 1)
373373- value = value >>> 1 ^ 0xedb88320;
374374- else
375375- value >>>= 1;
376376- CRC32_TABLE[pos] = value;
377377- pos++;
378378- }
379379-380380- }
381346}