Actions

Data Types

From RuneWiki

Revision as of 14:46, 11 February 2024 by Pazaz (talk | contribs)

Alt Packets

These buffer functions are used to obfuscate the network protocol - there are 3 alt types typically, but their obfuscation process can strip out unused methods so there is a chance not all of them are in a specific revision.

You won't find these used in the cache.

Get

public final int g1_alt1() {
    return this.data[this.pos++] - 128 & 0xFF;
}

public final int g1_alt2() {
    return -this.data[this.pos++] & 0xFF;
}

public final int g1_alt3() {
    return 128 - this.data[this.pos++] & 0xFF;
}

public final byte g1b_alt1() {
    return (byte) (this.data[this.pos++] - 128);
}

public final byte g1b_alt2() {
    return (byte) -this.data[this.pos++];
}

public final byte g1b_alt3() {
    return (byte) (128 - this.data[this.pos++]);
}

public final int g2_alt2() {
    this.pos += 2;
    return ((this.data[this.pos - 2] & 0xFF) << 8) + (this.data[this.pos - 1] - 128 & 0xFF);
}

public final int g2_alt3() {
    this.pos += 2;
    return ((this.data[this.pos - 1] & 0xFF) << 8) + (this.data[this.pos - 2] - 128 & 0xFF);
}

public final int g3_alt1() {
    this.pos += 3;
    return ((this.data[this.pos - 3] & 0xFF) << 16) + ((this.data[this.pos - 1] & 0xFF) << 8) + (this.data[this.pos - 2] & 0xFF);
}

public final int g4_alt1() {
    this.pos += 4;
    return ((this.data[this.pos - 1] & 0xFF) << 24) + ((this.data[this.pos - 2] & 0xFF) << 16) + ((this.data[this.pos - 3] & 0xFF) << 8) + (this.data[this.pos - 4] & 0xFF);
}

public final int g4_alt2() {
    this.pos += 4;
    return ((this.data[this.pos - 2] & 0xFF) << 24) + ((this.data[this.pos - 1] & 0xFF) << 16) + ((this.data[this.pos - 4] & 0xFF) << 8) + (this.data[this.pos - 3] & 0xFF);
}

public final int g4_alt3() {
    this.pos += 4;
    return ((this.data[this.pos - 3] & 0xFF) << 24) + ((this.data[this.pos - 4] & 0xFF) << 16) + ((this.data[this.pos - 1] & 0xFF) << 8) + (this.data[this.pos - 2] & 0xFF);
}

Put

public final void p1_alt1(int value) {
    this.data[this.pos++] = (byte) (value + 128);
}

public final void p1_alt2(int value) {
    this.data[this.pos++] = (byte) -value;
}

public final void p1_alt3(int value) {
    this.data[this.pos++] = (byte) (128 - value);
}

public final void p2_alt1(int value) {
    this.data[this.pos++] = (byte) value;
    this.data[this.pos++] = (byte) (value >> 8);
}

public final void p2_alt2(int value) {
    this.data[this.pos++] = (byte) (value >> 8);
    this.data[this.pos++] = (byte) (value + 128);
}

public final void p2_alt3(int value) {
    this.data[this.pos++] = (byte) (value + 128);
    this.data[this.pos++] = (byte) (value >> 8);
}

public final void p4_alt1(int value) {
    this.data[this.pos++] = (byte) value;
    this.data[this.pos++] = (byte) (value >> 8);
    this.data[this.pos++] = (byte) (value >> 16);
    this.data[this.pos++] = (byte) (value >> 24);
}

public final void p4_alt2(int value) {
    this.data[this.pos++] = (byte) (value >> 8);
    this.data[this.pos++] = (byte) value;
    this.data[this.pos++] = (byte) (value >> 24);
    this.data[this.pos++] = (byte) (value >> 16);
}

public final void p4_alt3(int value) {
    this.data[this.pos++] = (byte) (value >> 16);
    this.data[this.pos++] = (byte) (value >> 24);
    this.data[this.pos++] = (byte) value;
    this.data[this.pos++] = (byte) (value >> 8);
}