package org.rsbot.loader.script;
/**
*/
class Buffer {
private int pos;
private final byte[] data;
public Buffer(final byte[] buffer) {
data = buffer;
pos = 0;
}
public int g1() {
return data[pos++] & 0xff;
}
public int g2() {
pos += 2;
return ((data[pos - 2] & 0xff) << 8) + (data[pos - 1] & 0xff);
}
public int g4() {
pos += 4;
return ((data[pos - 4] & 0xff) << 24) + ((data[pos - 3] & 0xff) << 16) + ((data[pos - 2] & 0xff) << 8) + (data[pos - 1] & 0xff);
}
public long g8() {
final long l = g4() & 0xffffffffL;
final long r = g4() & 0xffffffffL;
return (l << 32) + r;
}
public String gstr() {
final int i = pos;
while (data[pos++] != 10) {
}
return new String(data, i, pos - i - 1);
}
public byte[] gstrbyte() {
final int i = pos;
while (data[pos++] != 10) {
}
final byte str[] = new byte[pos - i - 1];
System.arraycopy(data, i, str, i - i, pos - 1 - i);
return str;
}
public void gdata(final byte[] data, final int len, final int off) {
for (int i = off; i < off + len; i++) {
data[i] = this.data[pos++];
}
}
}