mirror of
https://gitlab.com/2009scape/rt4-client.git
synced 2026-08-28 05:45:15 -06:00
328 lines
11 KiB
Java
328 lines
11 KiB
Java
package rt4;
|
|
|
|
import org.openrs2.deob.annotation.OriginalArg;
|
|
import org.openrs2.deob.annotation.OriginalMember;
|
|
import org.openrs2.deob.annotation.Pc;
|
|
|
|
import java.io.IOException;
|
|
|
|
public class Preferences {
|
|
@OriginalMember(owner = "client!pa", name = "N", descriptor = "I")
|
|
public static int antiAliasingMode = 0;
|
|
@OriginalMember(owner = "client!na", name = "h", descriptor = "Z")
|
|
public static boolean safeMode = false;
|
|
@OriginalMember(owner = "client!il", name = "I", descriptor = "I")
|
|
public static int brightness = 3;
|
|
@OriginalMember(owner = "client!gf", name = "N", descriptor = "Z")
|
|
public static boolean removeRoofsSelectively = true;
|
|
@OriginalMember(owner = "client!hk", name = "eb", descriptor = "Z")
|
|
public static boolean stereo = true;
|
|
@OriginalMember(owner = "client!rm", name = "g", descriptor = "Z")
|
|
public static boolean highWaterDetail = true;
|
|
@OriginalMember(owner = "client!hn", name = "X", descriptor = "I")
|
|
public static int windowMode = 0;
|
|
@OriginalMember(owner = "client!bl", name = "W", descriptor = "I")
|
|
public static int fullScreenHeight = 0;
|
|
@OriginalMember(owner = "client!uf", name = "b", descriptor = "Z")
|
|
public static boolean showGroundDecorations = true;
|
|
@OriginalMember(owner = "client!ba", name = "x", descriptor = "Z")
|
|
public static boolean flickeringEffectsOn = true;
|
|
@OriginalMember(owner = "client!be", name = "Kb", descriptor = "Z")
|
|
public static boolean manyIdleAnimations = true;
|
|
@OriginalMember(owner = "client!cg", name = "f", descriptor = "I")
|
|
public static int ambientSoundsVolume = 127;
|
|
@OriginalMember(owner = "client!fk", name = "g", descriptor = "Z")
|
|
public static boolean fogEnabled = true;
|
|
@OriginalMember(owner = "client!ra", name = "R", descriptor = "Z")
|
|
public static boolean characterShadowsOn = true;
|
|
@OriginalMember(owner = "client!j", name = "v", descriptor = "I")
|
|
public static int fullScreenWidth = 0;
|
|
@OriginalMember(owner = "client!l", name = "k", descriptor = "I")
|
|
public static int sceneryShadowsType = 2;
|
|
@OriginalMember(owner = "client!mi", name = "ab", descriptor = "Z")
|
|
public static boolean manyGroundTextures = true;
|
|
@OriginalMember(owner = "client!od", name = "c", descriptor = "Z")
|
|
public static boolean highDetailLighting = true;
|
|
@OriginalMember(owner = "client!bb", name = "n", descriptor = "I")
|
|
public static int musicVolume = 255;
|
|
@OriginalMember(owner = "client!ec", name = "n", descriptor = "Z")
|
|
public static boolean highDetailTextures = true;
|
|
@OriginalMember(owner = "client!jl", name = "J", descriptor = "I")
|
|
public static int soundEffectVolume = 127;
|
|
@OriginalMember(owner = "client!na", name = "o", descriptor = "I")
|
|
public static int lastWorldId = 0;
|
|
@OriginalMember(owner = "client!lb", name = "A", descriptor = "I")
|
|
public static int buildArea = 0;
|
|
@OriginalMember(owner = "client!ml", name = "ab", descriptor = "Z")
|
|
public static boolean allLevelsVisible = true;
|
|
@OriginalMember(owner = "client!cj", name = "h", descriptor = "Z")
|
|
public static boolean aBoolean63;
|
|
@OriginalMember(owner = "client!fb", name = "m", descriptor = "Z")
|
|
public static boolean cursorsEnabled = true;
|
|
@OriginalMember(owner = "client!k", name = "c", descriptor = "Z")
|
|
public static boolean hdr = false;
|
|
@OriginalMember(owner = "client!rg", name = "F", descriptor = "I")
|
|
public static int favoriteWorlds = 0;
|
|
@OriginalMember(owner = "client!bh", name = "z", descriptor = "Z")
|
|
public static boolean sentToServer = true;
|
|
@OriginalMember(owner = "client!ga", name = "e", descriptor = "I")
|
|
static int particles = 2;
|
|
|
|
@OriginalMember(owner = "client!qh", name = "a", descriptor = "(Lsignlink!ll;B)V")
|
|
public static void write(@OriginalArg(0) SignLink arg0) {
|
|
@Pc(11) FileOnDisk local11 = null;
|
|
try {
|
|
@Pc(16) PrivilegedRequest local16 = arg0.openPreferences("runescape");
|
|
while (local16.status == 0) {
|
|
ThreadUtils.sleep(1L);
|
|
}
|
|
if (local16.status == 1) {
|
|
local11 = (FileOnDisk) local16.result;
|
|
@Pc(39) Buffer local39 = encode();
|
|
local11.write(local39.data, local39.offset, 0);
|
|
}
|
|
} catch (@Pc(49) Exception local49) {
|
|
}
|
|
try {
|
|
if (local11 != null) {
|
|
local11.close();
|
|
}
|
|
} catch (@Pc(56) Exception local56) {
|
|
}
|
|
}
|
|
|
|
@OriginalMember(owner = "client!gf", name = "a", descriptor = "(Lsignlink!ll;I)V")
|
|
public static void read(@OriginalArg(0) SignLink arg0) {
|
|
brightness = 3;
|
|
setAllVisibleLevels(true);
|
|
removeRoofsSelectively = true;
|
|
stereo = true;
|
|
highWaterDetail = true;
|
|
windowMode = 0;
|
|
fullScreenHeight = 0;
|
|
showGroundDecorations = true;
|
|
flickeringEffectsOn = true;
|
|
manyIdleAnimations = true;
|
|
ambientSoundsVolume = 127;
|
|
fogEnabled = true;
|
|
characterShadowsOn = true;
|
|
fullScreenWidth = 0;
|
|
sceneryShadowsType = 2;
|
|
manyGroundTextures = true;
|
|
highDetailLighting = true;
|
|
musicVolume = 255;
|
|
highDetailTextures = true;
|
|
antiAliasingMode = 0;
|
|
@Pc(48) FileOnDisk local48 = null;
|
|
soundEffectVolume = 127;
|
|
if (GameShell.maxMemory >= 96) {
|
|
setParticles(2);
|
|
} else {
|
|
setParticles(0);
|
|
}
|
|
lastWorldId = 0;
|
|
buildArea = 0;
|
|
aBoolean63 = false;
|
|
cursorsEnabled = true;
|
|
safeMode = false;
|
|
hdr = false;
|
|
favoriteWorlds = 0;
|
|
try {
|
|
@Pc(78) PrivilegedRequest request = arg0.openPreferences("runescape");
|
|
while (request.status == 0) {
|
|
ThreadUtils.sleep(1L);
|
|
}
|
|
if (request.status == 1) {
|
|
local48 = (FileOnDisk) request.result;
|
|
@Pc(106) byte[] local106 = new byte[(int) local48.length()];
|
|
@Pc(128) int local128;
|
|
for (@Pc(108) int local108 = 0; local108 < local106.length; local108 += local128) {
|
|
local128 = local48.read(local108, local106.length - local108, local106);
|
|
if (local128 == -1) {
|
|
throw new IOException("EOF");
|
|
}
|
|
}
|
|
decode(new Buffer(local106));
|
|
}
|
|
} catch (@Pc(151) Exception local151) {
|
|
}
|
|
try {
|
|
if (local48 != null) {
|
|
local48.close();
|
|
}
|
|
} catch (@Pc(158) Exception local158) {
|
|
}
|
|
}
|
|
|
|
@OriginalMember(owner = "client!ec", name = "a", descriptor = "(IZ)V")
|
|
public static void setAllVisibleLevels(@OriginalArg(1) boolean arg0) {
|
|
allLevelsVisible = arg0;
|
|
SceneGraph.aBoolean130 = !SceneGraph.allLevelsAreVisible();
|
|
}
|
|
|
|
@OriginalMember(owner = "client!ga", name = "b", descriptor = "(I)V")
|
|
public static void setParticles(@OriginalArg(0) int arg0) {
|
|
particles = arg0;
|
|
}
|
|
|
|
@OriginalMember(owner = "client!ga", name = "c", descriptor = "()I")
|
|
public static int getParticleSetting() {
|
|
return particles;
|
|
}
|
|
|
|
@OriginalMember(owner = "client!kk", name = "b", descriptor = "(Lclient!wa;I)V")
|
|
public static void decode(@OriginalArg(0) Buffer buffer) {
|
|
if (buffer.data.length - buffer.offset < 1) {
|
|
return;
|
|
}
|
|
@Pc(21) int version = buffer.g1();
|
|
if (version < 0 || version > 11) {
|
|
return;
|
|
}
|
|
@Pc(34) byte len;
|
|
if (version == 11) {
|
|
len = 33;
|
|
} else if (version == 10) {
|
|
len = 32;
|
|
} else if (version == 9) {
|
|
len = 31;
|
|
} else if (version == 8) {
|
|
len = 30;
|
|
} else if (version == 7) {
|
|
len = 29;
|
|
} else if (version == 6) {
|
|
len = 28;
|
|
} else if (version == 5) {
|
|
len = 28;
|
|
} else if (version == 4) {
|
|
len = 24;
|
|
} else if (version == 3) {
|
|
len = 23;
|
|
} else if (version == 2) {
|
|
len = 22;
|
|
} else if (version == 1) {
|
|
len = 23;
|
|
} else {
|
|
len = 19;
|
|
}
|
|
if (buffer.data.length - buffer.offset < len) {
|
|
return;
|
|
}
|
|
brightness = buffer.g1();
|
|
if (brightness < 1) {
|
|
brightness = 1;
|
|
} else if (brightness > 4) {
|
|
brightness = 4;
|
|
}
|
|
setAllVisibleLevels(buffer.g1() == 1);
|
|
removeRoofsSelectively = buffer.g1() == 1;
|
|
showGroundDecorations = buffer.g1() == 1;
|
|
highDetailTextures = buffer.g1() == 1;
|
|
manyIdleAnimations = buffer.g1() == 1;
|
|
flickeringEffectsOn = buffer.g1() == 1;
|
|
manyGroundTextures = buffer.g1() == 1;
|
|
characterShadowsOn = buffer.g1() == 1;
|
|
sceneryShadowsType = buffer.g1();
|
|
if (sceneryShadowsType > 2) {
|
|
sceneryShadowsType = 2;
|
|
}
|
|
if (version < 2) {
|
|
highDetailLighting = buffer.g1() == 1;
|
|
buffer.g1();
|
|
} else {
|
|
highDetailLighting = buffer.g1() == 1;
|
|
}
|
|
highWaterDetail = buffer.g1() == 1;
|
|
fogEnabled = buffer.g1() == 1;
|
|
windowMode = buffer.g1();
|
|
if (windowMode > 2) {
|
|
windowMode = 2;
|
|
}
|
|
antiAliasingMode = windowMode;
|
|
stereo = buffer.g1() == 1;
|
|
soundEffectVolume = buffer.g1();
|
|
if (soundEffectVolume > 127) {
|
|
soundEffectVolume = 127;
|
|
}
|
|
musicVolume = buffer.g1();
|
|
ambientSoundsVolume = buffer.g1();
|
|
if (ambientSoundsVolume > 127) {
|
|
ambientSoundsVolume = 127;
|
|
}
|
|
if (version >= 1) {
|
|
fullScreenWidth = buffer.g2();
|
|
fullScreenHeight = buffer.g2();
|
|
}
|
|
if (version >= 3 && version < 6) {
|
|
buffer.g1();
|
|
}
|
|
if (version >= 4) {
|
|
@Pc(386) int particles = buffer.g1();
|
|
if (GameShell.maxMemory < 96) {
|
|
particles = 0;
|
|
}
|
|
setParticles(particles);
|
|
}
|
|
if (version >= 5) {
|
|
lastWorldId = buffer.g4();
|
|
}
|
|
if (version >= 6) {
|
|
favoriteWorlds = buffer.g1();
|
|
}
|
|
if (version >= 7) {
|
|
safeMode = buffer.g1() == 1;
|
|
}
|
|
if (version >= 8) {
|
|
aBoolean63 = buffer.g1() == 1;
|
|
}
|
|
if (version >= 9) {
|
|
buildArea = buffer.g1();
|
|
}
|
|
if (version >= 10) {
|
|
hdr = buffer.g1() != 0;
|
|
}
|
|
if (version >= 11) {
|
|
cursorsEnabled = buffer.g1() != 0;
|
|
}
|
|
}
|
|
|
|
@OriginalMember(owner = "client!dl", name = "a", descriptor = "(B)Lclient!wa;")
|
|
public static Buffer encode() {
|
|
@Pc(4) Buffer local4 = new Buffer(34);
|
|
local4.p1(11);
|
|
local4.p1(brightness);
|
|
local4.p1(allLevelsVisible ? 1 : 0);
|
|
local4.p1(removeRoofsSelectively ? 1 : 0);
|
|
local4.p1(showGroundDecorations ? 1 : 0);
|
|
local4.p1(highDetailTextures ? 1 : 0);
|
|
local4.p1(manyIdleAnimations ? 1 : 0);
|
|
local4.p1(flickeringEffectsOn ? 1 : 0);
|
|
local4.p1(manyGroundTextures ? 1 : 0);
|
|
local4.p1(characterShadowsOn ? 1 : 0);
|
|
local4.p1(sceneryShadowsType);
|
|
local4.p1(highDetailLighting ? 1 : 0);
|
|
local4.p1(highWaterDetail ? 1 : 0);
|
|
local4.p1(fogEnabled ? 1 : 0);
|
|
local4.p1(windowMode);
|
|
local4.p1(stereo ? 1 : 0);
|
|
local4.p1(soundEffectVolume);
|
|
local4.p1(musicVolume);
|
|
local4.p1(ambientSoundsVolume);
|
|
local4.p2(fullScreenWidth);
|
|
local4.p2(fullScreenHeight);
|
|
local4.p1(getParticleSetting());
|
|
local4.p4(lastWorldId);
|
|
local4.p1(favoriteWorlds);
|
|
local4.p1(safeMode ? 1 : 0);
|
|
local4.p1(aBoolean63 ? 1 : 0);
|
|
local4.p1(buildArea);
|
|
local4.p1(hdr ? 1 : 0);
|
|
local4.p1(cursorsEnabled ? 1 : 0);
|
|
return local4;
|
|
}
|
|
|
|
@OriginalMember(owner = "client!lf", name = "c", descriptor = "(I)I")
|
|
public static int toInt() {
|
|
return ((stereo ? 1 : 0) << 19) + (((fogEnabled ? 1 : 0) << 16) + ((highWaterDetail ? 1 : 0) << 15) + ((highDetailLighting ? 1 : 0) << 13) + ((characterShadowsOn ? 1 : 0) << 10) + ((manyGroundTextures ? 1 : 0) << 9) + ((manyIdleAnimations ? 1 : 0) << 7) + ((highDetailTextures ? 1 : 0) << 6) + ((showGroundDecorations ? 1 : 0) << 5) + (((allLevelsVisible ? 1 : 0) << 3) + (brightness & 0x7) - (-((removeRoofsSelectively ? 1 : 0) << 4) + -((flickeringEffectsOn ? 1 : 0) << 8)) - (-((sceneryShadowsType & 0x3) << 11) + -((soundEffectVolume == 0 ? 0 : 1) << 20) - (((musicVolume == 0 ? 0 : 1) << 21) + ((ambientSoundsVolume == 0 ? 0 : 1) << 22)))) + (getParticleSetting() << 23));
|
|
}
|
|
}
|