741 lines
27 KiB
Java
741 lines
27 KiB
Java
import java.util.Date;
|
|
import net.runelite.mapping.Export;
|
|
import net.runelite.mapping.Implements;
|
|
import net.runelite.mapping.ObfuscatedName;
|
|
import net.runelite.mapping.ObfuscatedSignature;
|
|
import net.runelite.rs.ScriptOpcodes;
|
|
|
|
@ObfuscatedName("cz")
|
|
@Implements("UserComparator8")
|
|
public class UserComparator8 extends AbstractUserComparator {
|
|
@ObfuscatedName("z")
|
|
@ObfuscatedSignature(
|
|
descriptor = "Loi;"
|
|
)
|
|
static IndexedSprite field1312;
|
|
@ObfuscatedName("n")
|
|
@Export("reversed")
|
|
final boolean reversed;
|
|
|
|
public UserComparator8(boolean var1) {
|
|
this.reversed = var1;
|
|
}
|
|
|
|
@ObfuscatedName("n")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(Lmm;Lmm;B)I",
|
|
garbageValue = "-77"
|
|
)
|
|
@Export("compareBuddy")
|
|
int compareBuddy(Buddy var1, Buddy var2) {
|
|
if (Client.worldId == var1.world) {
|
|
if (var2.world != Client.worldId) {
|
|
return this.reversed ? -1 : 1;
|
|
}
|
|
} else if (var2.world == Client.worldId) {
|
|
return this.reversed ? 1 : -1;
|
|
}
|
|
|
|
return this.compareUser(var1, var2);
|
|
}
|
|
|
|
public int compare(Object var1, Object var2) {
|
|
return this.compareBuddy((Buddy)var1, (Buddy)var2);
|
|
}
|
|
|
|
@ObfuscatedName("c")
|
|
@Export("base37DecodeLong")
|
|
public static String base37DecodeLong(long var0) {
|
|
if (var0 > 0L && var0 < 6582952005840035281L) {
|
|
if (var0 % 37L == 0L) {
|
|
return null;
|
|
} else {
|
|
int var2 = 0;
|
|
|
|
for (long var3 = var0; 0L != var3; var3 /= 37L) {
|
|
++var2;
|
|
}
|
|
|
|
StringBuilder var5;
|
|
char var8;
|
|
for (var5 = new StringBuilder(var2); var0 != 0L; var5.append(var8)) {
|
|
long var6 = var0;
|
|
var0 /= 37L;
|
|
var8 = class320.base37Table[(int)(var6 - 37L * var0)];
|
|
if (var8 == '_') {
|
|
int var9 = var5.length() - 1;
|
|
var5.setCharAt(var9, Character.toUpperCase(var5.charAt(var9)));
|
|
var8 = 160;
|
|
}
|
|
}
|
|
|
|
var5.reverse();
|
|
var5.setCharAt(0, Character.toUpperCase(var5.charAt(0)));
|
|
return var5.toString();
|
|
}
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
@ObfuscatedName("y")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(CI)Z",
|
|
garbageValue = "739349389"
|
|
)
|
|
@Export("isAlphaNumeric")
|
|
public static boolean isAlphaNumeric(char var0) {
|
|
return var0 >= '0' && var0 <= '9' || var0 >= 'A' && var0 <= 'Z' || var0 >= 'a' && var0 <= 'z';
|
|
}
|
|
|
|
@ObfuscatedName("at")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(ILbg;ZI)I",
|
|
garbageValue = "-1021871509"
|
|
)
|
|
static int method2398(int var0, Script var1, boolean var2) {
|
|
String var3;
|
|
int var9;
|
|
if (var0 == ScriptOpcodes.APPEND_NUM) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
var9 = Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var3 + var9;
|
|
return 1;
|
|
} else {
|
|
String var4;
|
|
if (var0 == ScriptOpcodes.APPEND) {
|
|
Interpreter.Interpreter_stringStackSize -= 2;
|
|
var3 = Interpreter.Interpreter_stringStack[Interpreter.Interpreter_stringStackSize];
|
|
var4 = Interpreter.Interpreter_stringStack[Interpreter.Interpreter_stringStackSize + 1];
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var3 + var4;
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.APPEND_SIGNNUM) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
var9 = Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var3 + EnumComposition.intToString(var9, true);
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.LOWERCASE) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var3.toLowerCase();
|
|
return 1;
|
|
} else {
|
|
int var6;
|
|
int var10;
|
|
if (var0 == ScriptOpcodes.FROMDATE) {
|
|
var10 = Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize];
|
|
long var13 = 86400000L * ((long)var10 + 11745L);
|
|
Interpreter.Interpreter_calendar.setTime(new Date(var13));
|
|
var6 = Interpreter.Interpreter_calendar.get(5);
|
|
int var17 = Interpreter.Interpreter_calendar.get(2);
|
|
int var8 = Interpreter.Interpreter_calendar.get(1);
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var6 + "-" + Interpreter.Interpreter_MONTHS[var17] + "-" + var8;
|
|
return 1;
|
|
} else if (var0 != ScriptOpcodes.TEXT_GENDER) {
|
|
if (var0 == ScriptOpcodes.TOSTRING) {
|
|
var10 = Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = Integer.toString(var10);
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.COMPARE) {
|
|
Interpreter.Interpreter_stringStackSize -= 2;
|
|
Interpreter.Interpreter_intStack[++class240.Interpreter_intStackSize - 1] = WorldMapEvent.method3949(class122.compareStrings(Interpreter.Interpreter_stringStack[Interpreter.Interpreter_stringStackSize], Interpreter.Interpreter_stringStack[Interpreter.Interpreter_stringStackSize + 1], class323.clientLanguage));
|
|
return 1;
|
|
} else {
|
|
int var5;
|
|
byte[] var11;
|
|
Font var12;
|
|
if (var0 == ScriptOpcodes.PARAHEIGHT) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
class240.Interpreter_intStackSize -= 2;
|
|
var9 = Interpreter.Interpreter_intStack[class240.Interpreter_intStackSize];
|
|
var5 = Interpreter.Interpreter_intStack[class240.Interpreter_intStackSize + 1];
|
|
var11 = class391.archive13.takeFile(var5, 0);
|
|
var12 = new Font(var11);
|
|
Interpreter.Interpreter_intStack[++class240.Interpreter_intStackSize - 1] = var12.lineCount(var3, var9);
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.PARAWIDTH) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
class240.Interpreter_intStackSize -= 2;
|
|
var9 = Interpreter.Interpreter_intStack[class240.Interpreter_intStackSize];
|
|
var5 = Interpreter.Interpreter_intStack[class240.Interpreter_intStackSize + 1];
|
|
var11 = class391.archive13.takeFile(var5, 0);
|
|
var12 = new Font(var11);
|
|
Interpreter.Interpreter_intStack[++class240.Interpreter_intStackSize - 1] = var12.lineWidth(var3, var9);
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.TEXT_SWITCH) {
|
|
Interpreter.Interpreter_stringStackSize -= 2;
|
|
var3 = Interpreter.Interpreter_stringStack[Interpreter.Interpreter_stringStackSize];
|
|
var4 = Interpreter.Interpreter_stringStack[Interpreter.Interpreter_stringStackSize + 1];
|
|
if (Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize] == 1) {
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var3;
|
|
} else {
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var4;
|
|
}
|
|
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.ESCAPE) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = AbstractFont.escapeBrackets(var3);
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.APPEND_CHAR) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
var9 = Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var3 + (char)var9;
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.CHAR_ISPRINTABLE) {
|
|
var10 = Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_intStack[++class240.Interpreter_intStackSize - 1] = Players.isCharPrintable((char)var10) ? 1 : 0;
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.CHAR_ISALPHANUMERIC) {
|
|
var10 = Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_intStack[++class240.Interpreter_intStackSize - 1] = isAlphaNumeric((char)var10) ? 1 : 0;
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.CHAR_ISALPHA) {
|
|
var10 = Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_intStack[++class240.Interpreter_intStackSize - 1] = class29.isCharAlphabetic((char)var10) ? 1 : 0;
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.CHAR_ISNUMERIC) {
|
|
var10 = Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_intStack[++class240.Interpreter_intStackSize - 1] = FaceNormal.isDigit((char)var10) ? 1 : 0;
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.STRING_LENGTH) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
if (var3 != null) {
|
|
Interpreter.Interpreter_intStack[++class240.Interpreter_intStackSize - 1] = var3.length();
|
|
} else {
|
|
Interpreter.Interpreter_intStack[++class240.Interpreter_intStackSize - 1] = 0;
|
|
}
|
|
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.SUBSTRING) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
class240.Interpreter_intStackSize -= 2;
|
|
var9 = Interpreter.Interpreter_intStack[class240.Interpreter_intStackSize];
|
|
var5 = Interpreter.Interpreter_intStack[class240.Interpreter_intStackSize + 1];
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var3.substring(var9, var5);
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.REMOVETAGS) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
StringBuilder var15 = new StringBuilder(var3.length());
|
|
boolean var16 = false;
|
|
|
|
for (var6 = 0; var6 < var3.length(); ++var6) {
|
|
char var7 = var3.charAt(var6);
|
|
if (var7 == '<') {
|
|
var16 = true;
|
|
} else if (var7 == '>') {
|
|
var16 = false;
|
|
} else if (!var16) {
|
|
var15.append(var7);
|
|
}
|
|
}
|
|
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var15.toString();
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.STRING_INDEXOF_CHAR) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
var9 = Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_intStack[++class240.Interpreter_intStackSize - 1] = var3.indexOf(var9);
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.STRING_INDEXOF_STRING) {
|
|
Interpreter.Interpreter_stringStackSize -= 2;
|
|
var3 = Interpreter.Interpreter_stringStack[Interpreter.Interpreter_stringStackSize];
|
|
var4 = Interpreter.Interpreter_stringStack[Interpreter.Interpreter_stringStackSize + 1];
|
|
var5 = Interpreter.Interpreter_intStack[--class240.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_intStack[++class240.Interpreter_intStackSize - 1] = var3.indexOf(var4, var5);
|
|
return 1;
|
|
} else if (var0 == 4122) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var3.toUpperCase();
|
|
return 1;
|
|
} else {
|
|
return 2;
|
|
}
|
|
}
|
|
} else {
|
|
Interpreter.Interpreter_stringStackSize -= 2;
|
|
var3 = Interpreter.Interpreter_stringStack[Interpreter.Interpreter_stringStackSize];
|
|
var4 = Interpreter.Interpreter_stringStack[Interpreter.Interpreter_stringStackSize + 1];
|
|
if (class129.localPlayer.appearance != null && class129.localPlayer.appearance.isFemale) {
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var4;
|
|
} else {
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var3;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@ObfuscatedName("gc")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(IIIIB)V",
|
|
garbageValue = "-37"
|
|
)
|
|
@Export("drawEntities")
|
|
static final void drawEntities(int var0, int var1, int var2, int var3) {
|
|
++Client.viewportDrawCount;
|
|
if (class129.localPlayer.x >> 7 == Client.destinationX && class129.localPlayer.y >> 7 == Client.destinationY) {
|
|
Client.destinationX = 0;
|
|
}
|
|
|
|
WorldMapLabelSize.method3387();
|
|
GrandExchangeOfferOwnWorldComparator.method1134();
|
|
ClanMate.addNpcsToScene(true);
|
|
DynamicObject.method1955();
|
|
ClanMate.addNpcsToScene(false);
|
|
|
|
int var6;
|
|
for (Projectile var4 = (Projectile)Client.projectiles.last(); var4 != null; var4 = (Projectile)Client.projectiles.previous()) {
|
|
if (var4.plane == class391.Client_plane && Client.cycle <= var4.cycleEnd) {
|
|
if (Client.cycle >= var4.cycleStart) {
|
|
if (var4.targetIndex > 0) {
|
|
NPC var31 = Client.npcs[var4.targetIndex - 1];
|
|
if (var31 != null && var31.x >= 0 && var31.x < 13312 && var31.y >= 0 && var31.y < 13312) {
|
|
var4.setDestination(var31.x, var31.y, GraphicsObject.getTileHeight(var31.x, var31.y, var4.plane) - var4.endHeight, Client.cycle);
|
|
}
|
|
}
|
|
|
|
if (var4.targetIndex < 0) {
|
|
var6 = -var4.targetIndex - 1;
|
|
Player var34;
|
|
if (var6 == Client.localPlayerIndex) {
|
|
var34 = class129.localPlayer;
|
|
} else {
|
|
var34 = Client.players[var6];
|
|
}
|
|
|
|
if (var34 != null && var34.x >= 0 && var34.x < 13312 && var34.y >= 0 && var34.y < 13312) {
|
|
var4.setDestination(var34.x, var34.y, GraphicsObject.getTileHeight(var34.x, var34.y, var4.plane) - var4.endHeight, Client.cycle);
|
|
}
|
|
}
|
|
|
|
var4.advance(Client.field764);
|
|
CollisionMap.scene.drawEntity(class391.Client_plane, (int)var4.x, (int)var4.y, (int)var4.z, 60, var4, var4.yaw, -1L, false);
|
|
}
|
|
} else {
|
|
var4.remove();
|
|
}
|
|
}
|
|
|
|
for (GraphicsObject var32 = (GraphicsObject)Client.graphicsObjects.last(); var32 != null; var32 = (GraphicsObject)Client.graphicsObjects.previous()) {
|
|
if (var32.plane == class391.Client_plane && !var32.isFinished) {
|
|
if (Client.cycle >= var32.cycleStart) {
|
|
var32.advance(Client.field764);
|
|
if (var32.isFinished) {
|
|
var32.remove();
|
|
} else {
|
|
CollisionMap.scene.drawEntity(var32.plane, var32.x, var32.y, var32.height, 60, var32, 0, -1L, false);
|
|
}
|
|
}
|
|
} else {
|
|
var32.remove();
|
|
}
|
|
}
|
|
|
|
class9.setViewportShape(var0, var1, var2, var3, true);
|
|
var0 = Client.viewportOffsetX;
|
|
var1 = Client.viewportOffsetY;
|
|
var2 = Client.viewportWidth;
|
|
var3 = Client.viewportHeight;
|
|
Rasterizer2D.Rasterizer2D_setClip(var0, var1, var0 + var2, var3 + var1);
|
|
Rasterizer3D.Rasterizer3D_setClipFromRasterizer2D();
|
|
int var5;
|
|
int var28;
|
|
if (!Client.isCameraLocked) {
|
|
var28 = Client.camAngleX;
|
|
if (Client.field483 / 256 > var28) {
|
|
var28 = Client.field483 / 256;
|
|
}
|
|
|
|
if (Client.field736[4] && Client.field738[4] + 128 > var28) {
|
|
var28 = Client.field738[4] + 128;
|
|
}
|
|
|
|
var5 = Client.camAngleY & 2047;
|
|
class1.method14(WorldMapID.oculusOrbFocalPointX, ClanSettings.field1473, WorldMapRectangle.oculusOrbFocalPointY, var28, var5, AccessFile.method6644(var28), var3);
|
|
}
|
|
|
|
int var7;
|
|
int var8;
|
|
int var9;
|
|
int var10;
|
|
int var11;
|
|
int var12;
|
|
int var13;
|
|
int var14;
|
|
if (!Client.isCameraLocked) {
|
|
if (VarbitComposition.clientPreferences.roofsHidden) {
|
|
var5 = class391.Client_plane;
|
|
} else {
|
|
label650: {
|
|
var6 = 3;
|
|
if (ApproximateRouteStrategy.cameraPitch < 310) {
|
|
if (Client.oculusOrbState == 1) {
|
|
var7 = WorldMapID.oculusOrbFocalPointX >> 7;
|
|
var8 = WorldMapRectangle.oculusOrbFocalPointY >> 7;
|
|
} else {
|
|
var7 = class129.localPlayer.x >> 7;
|
|
var8 = class129.localPlayer.y >> 7;
|
|
}
|
|
|
|
var9 = WorldMapSection2.cameraX >> 7;
|
|
var10 = DevicePcmPlayerProvider.cameraZ >> 7;
|
|
if (var9 < 0 || var10 < 0 || var9 >= 104 || var10 >= 104) {
|
|
var5 = class391.Client_plane;
|
|
break label650;
|
|
}
|
|
|
|
if (var7 < 0 || var8 < 0 || var7 >= 104 || var8 >= 104) {
|
|
var5 = class391.Client_plane;
|
|
break label650;
|
|
}
|
|
|
|
if ((Tiles.Tiles_renderFlags[class391.Client_plane][var9][var10] & 4) != 0) {
|
|
var6 = class391.Client_plane;
|
|
}
|
|
|
|
if (var7 > var9) {
|
|
var11 = var7 - var9;
|
|
} else {
|
|
var11 = var9 - var7;
|
|
}
|
|
|
|
if (var8 > var10) {
|
|
var12 = var8 - var10;
|
|
} else {
|
|
var12 = var10 - var8;
|
|
}
|
|
|
|
if (var11 > var12) {
|
|
var13 = var12 * 65536 / var11;
|
|
var14 = 32768;
|
|
|
|
while (var9 != var7) {
|
|
if (var9 < var7) {
|
|
++var9;
|
|
} else if (var9 > var7) {
|
|
--var9;
|
|
}
|
|
|
|
if ((Tiles.Tiles_renderFlags[class391.Client_plane][var9][var10] & 4) != 0) {
|
|
var6 = class391.Client_plane;
|
|
}
|
|
|
|
var14 += var13;
|
|
if (var14 >= 65536) {
|
|
var14 -= 65536;
|
|
if (var10 < var8) {
|
|
++var10;
|
|
} else if (var10 > var8) {
|
|
--var10;
|
|
}
|
|
|
|
if ((Tiles.Tiles_renderFlags[class391.Client_plane][var9][var10] & 4) != 0) {
|
|
var6 = class391.Client_plane;
|
|
}
|
|
}
|
|
}
|
|
} else if (var12 > 0) {
|
|
var13 = var11 * 65536 / var12;
|
|
var14 = 32768;
|
|
|
|
while (var8 != var10) {
|
|
if (var10 < var8) {
|
|
++var10;
|
|
} else if (var10 > var8) {
|
|
--var10;
|
|
}
|
|
|
|
if ((Tiles.Tiles_renderFlags[class391.Client_plane][var9][var10] & 4) != 0) {
|
|
var6 = class391.Client_plane;
|
|
}
|
|
|
|
var14 += var13;
|
|
if (var14 >= 65536) {
|
|
var14 -= 65536;
|
|
if (var9 < var7) {
|
|
++var9;
|
|
} else if (var9 > var7) {
|
|
--var9;
|
|
}
|
|
|
|
if ((Tiles.Tiles_renderFlags[class391.Client_plane][var9][var10] & 4) != 0) {
|
|
var6 = class391.Client_plane;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (class129.localPlayer.x >= 0 && class129.localPlayer.y >= 0 && class129.localPlayer.x < 13312 && class129.localPlayer.y < 13312) {
|
|
if ((Tiles.Tiles_renderFlags[class391.Client_plane][class129.localPlayer.x >> 7][class129.localPlayer.y >> 7] & 4) != 0) {
|
|
var6 = class391.Client_plane;
|
|
}
|
|
|
|
var5 = var6;
|
|
} else {
|
|
var5 = class391.Client_plane;
|
|
}
|
|
}
|
|
}
|
|
|
|
var28 = var5;
|
|
} else {
|
|
if (VarbitComposition.clientPreferences.roofsHidden) {
|
|
var5 = class391.Client_plane;
|
|
} else {
|
|
var6 = GraphicsObject.getTileHeight(WorldMapSection2.cameraX, DevicePcmPlayerProvider.cameraZ, class391.Client_plane);
|
|
if (var6 - SpotAnimationDefinition.cameraY < 800 && (Tiles.Tiles_renderFlags[class391.Client_plane][WorldMapSection2.cameraX >> 7][DevicePcmPlayerProvider.cameraZ >> 7] & 4) != 0) {
|
|
var5 = class391.Client_plane;
|
|
} else {
|
|
var5 = 3;
|
|
}
|
|
}
|
|
|
|
var28 = var5;
|
|
}
|
|
|
|
var5 = WorldMapSection2.cameraX;
|
|
var6 = SpotAnimationDefinition.cameraY;
|
|
var7 = DevicePcmPlayerProvider.cameraZ;
|
|
var8 = ApproximateRouteStrategy.cameraPitch;
|
|
var9 = Fonts.cameraYaw;
|
|
|
|
for (var10 = 0; var10 < 5; ++var10) {
|
|
if (Client.field736[var10]) {
|
|
var11 = (int)(Math.random() * (double)(Client.field484[var10] * 2 + 1) - (double)Client.field484[var10] + Math.sin((double)Client.field686[var10] / 100.0D * (double)Client.field740[var10]) * (double)Client.field738[var10]);
|
|
if (var10 == 0) {
|
|
WorldMapSection2.cameraX += var11;
|
|
}
|
|
|
|
if (var10 == 1) {
|
|
SpotAnimationDefinition.cameraY += var11;
|
|
}
|
|
|
|
if (var10 == 2) {
|
|
DevicePcmPlayerProvider.cameraZ += var11;
|
|
}
|
|
|
|
if (var10 == 3) {
|
|
Fonts.cameraYaw = var11 + Fonts.cameraYaw & 2047;
|
|
}
|
|
|
|
if (var10 == 4) {
|
|
ApproximateRouteStrategy.cameraPitch += var11;
|
|
if (ApproximateRouteStrategy.cameraPitch < 128) {
|
|
ApproximateRouteStrategy.cameraPitch = 128;
|
|
}
|
|
|
|
if (ApproximateRouteStrategy.cameraPitch > 383) {
|
|
ApproximateRouteStrategy.cameraPitch = 383;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
var10 = MouseHandler.MouseHandler_x;
|
|
var11 = MouseHandler.MouseHandler_y;
|
|
if (MouseHandler.MouseHandler_lastButton != 0) {
|
|
var10 = MouseHandler.MouseHandler_lastPressedX;
|
|
var11 = MouseHandler.MouseHandler_lastPressedY;
|
|
}
|
|
|
|
if (var10 >= var0 && var10 < var0 + var2 && var11 >= var1 && var11 < var3 + var1) {
|
|
var12 = var10 - var0;
|
|
var13 = var11 - var1;
|
|
ViewportMouse.ViewportMouse_x = var12;
|
|
ViewportMouse.ViewportMouse_y = var13;
|
|
ViewportMouse.ViewportMouse_isInViewport = true;
|
|
ViewportMouse.ViewportMouse_entityCount = 0;
|
|
ViewportMouse.ViewportMouse_false0 = false;
|
|
} else {
|
|
class133.method2654();
|
|
}
|
|
|
|
class1.playPcmPlayers();
|
|
Rasterizer2D.Rasterizer2D_fillRectangle(var0, var1, var2, var3, 0);
|
|
class1.playPcmPlayers();
|
|
var12 = Rasterizer3D.Rasterizer3D_zoom;
|
|
Rasterizer3D.Rasterizer3D_zoom = Client.viewportZoom;
|
|
CollisionMap.scene.draw(WorldMapSection2.cameraX, SpotAnimationDefinition.cameraY, DevicePcmPlayerProvider.cameraZ, ApproximateRouteStrategy.cameraPitch, Fonts.cameraYaw, var28);
|
|
Rasterizer3D.Rasterizer3D_zoom = var12;
|
|
class1.playPcmPlayers();
|
|
CollisionMap.scene.clearTempGameObjects();
|
|
Client.overheadTextCount = 0;
|
|
boolean var33 = false;
|
|
var14 = -1;
|
|
int var15 = -1;
|
|
int var16 = Players.Players_count;
|
|
int[] var17 = Players.Players_indices;
|
|
|
|
int var18;
|
|
for (var18 = 0; var18 < var16 + Client.npcCount; ++var18) {
|
|
Object var30;
|
|
if (var18 < var16) {
|
|
var30 = Client.players[var17[var18]];
|
|
if (var17[var18] == Client.combatTargetPlayerIndex) {
|
|
var33 = true;
|
|
var14 = var18;
|
|
continue;
|
|
}
|
|
|
|
if (var30 == class129.localPlayer) {
|
|
var15 = var18;
|
|
continue;
|
|
}
|
|
} else {
|
|
var30 = Client.npcs[Client.npcIndices[var18 - var16]];
|
|
}
|
|
|
|
class17.drawActor2d((Actor)var30, var18, var0, var1, var2, var3);
|
|
}
|
|
|
|
if (Client.renderSelf && var15 != -1) {
|
|
class17.drawActor2d(class129.localPlayer, var15, var0, var1, var2, var3);
|
|
}
|
|
|
|
if (var33) {
|
|
class17.drawActor2d(Client.players[Client.combatTargetPlayerIndex], var14, var0, var1, var2, var3);
|
|
}
|
|
|
|
for (var18 = 0; var18 < Client.overheadTextCount; ++var18) {
|
|
int var19 = Client.overheadTextXs[var18];
|
|
int var20 = Client.overheadTextYs[var18];
|
|
int var21 = Client.overheadTextXOffsets[var18];
|
|
int var22 = Client.overheadTextAscents[var18];
|
|
boolean var23 = true;
|
|
|
|
while (var23) {
|
|
var23 = false;
|
|
|
|
for (int var29 = 0; var29 < var18; ++var29) {
|
|
if (var20 + 2 > Client.overheadTextYs[var29] - Client.overheadTextAscents[var29] && var20 - var22 < Client.overheadTextYs[var29] + 2 && var19 - var21 < Client.overheadTextXs[var29] + Client.overheadTextXOffsets[var29] && var21 + var19 > Client.overheadTextXs[var29] - Client.overheadTextXOffsets[var29] && Client.overheadTextYs[var29] - Client.overheadTextAscents[var29] < var20) {
|
|
var20 = Client.overheadTextYs[var29] - Client.overheadTextAscents[var29];
|
|
var23 = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
Client.viewportTempX = Client.overheadTextXs[var18];
|
|
Client.viewportTempY = Client.overheadTextYs[var18] = var20;
|
|
String var24 = Client.overheadText[var18];
|
|
if (Client.chatEffects == 0) {
|
|
int var25 = 16776960;
|
|
if (Client.overheadTextColors[var18] < 6) {
|
|
var25 = Client.field707[Client.overheadTextColors[var18]];
|
|
}
|
|
|
|
if (Client.overheadTextColors[var18] == 6) {
|
|
var25 = Client.viewportDrawCount % 20 < 10 ? 16711680 : 16776960;
|
|
}
|
|
|
|
if (Client.overheadTextColors[var18] == 7) {
|
|
var25 = Client.viewportDrawCount % 20 < 10 ? 255 : '\uffff';
|
|
}
|
|
|
|
if (Client.overheadTextColors[var18] == 8) {
|
|
var25 = Client.viewportDrawCount % 20 < 10 ? '뀀' : 8454016;
|
|
}
|
|
|
|
int var26;
|
|
if (Client.overheadTextColors[var18] == 9) {
|
|
var26 = 150 - Client.overheadTextCyclesRemaining[var18];
|
|
if (var26 < 50) {
|
|
var25 = var26 * 1280 + 16711680;
|
|
} else if (var26 < 100) {
|
|
var25 = 16776960 - (var26 - 50) * 327680;
|
|
} else if (var26 < 150) {
|
|
var25 = (var26 - 100) * 5 + 65280;
|
|
}
|
|
}
|
|
|
|
if (Client.overheadTextColors[var18] == 10) {
|
|
var26 = 150 - Client.overheadTextCyclesRemaining[var18];
|
|
if (var26 < 50) {
|
|
var25 = var26 * 5 + 16711680;
|
|
} else if (var26 < 100) {
|
|
var25 = 16711935 - (var26 - 50) * 327680;
|
|
} else if (var26 < 150) {
|
|
var25 = (var26 - 100) * 327680 + 255 - (var26 - 100) * 5;
|
|
}
|
|
}
|
|
|
|
if (Client.overheadTextColors[var18] == 11) {
|
|
var26 = 150 - Client.overheadTextCyclesRemaining[var18];
|
|
if (var26 < 50) {
|
|
var25 = 16777215 - var26 * 327685;
|
|
} else if (var26 < 100) {
|
|
var25 = (var26 - 50) * 327685 + 65280;
|
|
} else if (var26 < 150) {
|
|
var25 = 16777215 - (var26 - 100) * 327680;
|
|
}
|
|
}
|
|
|
|
if (Client.overheadTextEffects[var18] == 0) {
|
|
class11.fontBold12.drawCentered(var24, var0 + Client.viewportTempX, Client.viewportTempY + var1, var25, 0);
|
|
}
|
|
|
|
if (Client.overheadTextEffects[var18] == 1) {
|
|
class11.fontBold12.drawCenteredWave(var24, var0 + Client.viewportTempX, Client.viewportTempY + var1, var25, 0, Client.viewportDrawCount);
|
|
}
|
|
|
|
if (Client.overheadTextEffects[var18] == 2) {
|
|
class11.fontBold12.drawCenteredWave2(var24, var0 + Client.viewportTempX, Client.viewportTempY + var1, var25, 0, Client.viewportDrawCount);
|
|
}
|
|
|
|
if (Client.overheadTextEffects[var18] == 3) {
|
|
class11.fontBold12.drawCenteredShake(var24, var0 + Client.viewportTempX, Client.viewportTempY + var1, var25, 0, Client.viewportDrawCount, 150 - Client.overheadTextCyclesRemaining[var18]);
|
|
}
|
|
|
|
if (Client.overheadTextEffects[var18] == 4) {
|
|
var26 = (150 - Client.overheadTextCyclesRemaining[var18]) * (class11.fontBold12.stringWidth(var24) + 100) / 150;
|
|
Rasterizer2D.Rasterizer2D_expandClip(var0 + Client.viewportTempX - 50, var1, var0 + Client.viewportTempX + 50, var3 + var1);
|
|
class11.fontBold12.draw(var24, var0 + Client.viewportTempX + 50 - var26, Client.viewportTempY + var1, var25, 0);
|
|
Rasterizer2D.Rasterizer2D_setClip(var0, var1, var0 + var2, var3 + var1);
|
|
}
|
|
|
|
if (Client.overheadTextEffects[var18] == 5) {
|
|
var26 = 150 - Client.overheadTextCyclesRemaining[var18];
|
|
int var27 = 0;
|
|
if (var26 < 25) {
|
|
var27 = var26 - 25;
|
|
} else if (var26 > 125) {
|
|
var27 = var26 - 125;
|
|
}
|
|
|
|
Rasterizer2D.Rasterizer2D_expandClip(var0, Client.viewportTempY + var1 - class11.fontBold12.ascent - 1, var0 + var2, Client.viewportTempY + var1 + 5);
|
|
class11.fontBold12.drawCentered(var24, var0 + Client.viewportTempX, var27 + Client.viewportTempY + var1, var25, 0);
|
|
Rasterizer2D.Rasterizer2D_setClip(var0, var1, var0 + var2, var3 + var1);
|
|
}
|
|
} else {
|
|
class11.fontBold12.drawCentered(var24, var0 + Client.viewportTempX, Client.viewportTempY + var1, 16776960, 0);
|
|
}
|
|
}
|
|
|
|
if (Client.hintArrowType == 2) {
|
|
Login.worldToScreen((Client.hintArrowX - FloorOverlayDefinition.baseX << 7) + Client.hintArrowSubX, (Client.hintArrowY - class320.baseY << 7) + Client.hintArrowSubY, Client.hintArrowHeight * 2);
|
|
if (Client.viewportTempX > -1 && Client.cycle % 20 < 10) {
|
|
class7.headIconHintSprites[0].drawTransBgAt(var0 + Client.viewportTempX - 12, Client.viewportTempY + var1 - 28);
|
|
}
|
|
}
|
|
|
|
((TextureProvider)Rasterizer3D.Rasterizer3D_textureLoader).animate(Client.field764);
|
|
GameBuild.method5073(var0, var1, var2, var3);
|
|
WorldMapSection2.cameraX = var5;
|
|
SpotAnimationDefinition.cameraY = var6;
|
|
DevicePcmPlayerProvider.cameraZ = var7;
|
|
ApproximateRouteStrategy.cameraPitch = var8;
|
|
Fonts.cameraYaw = var9;
|
|
if (Client.isLoading && Strings.method5088(true, false) == 0) {
|
|
Client.isLoading = false;
|
|
}
|
|
|
|
if (Client.isLoading) {
|
|
Rasterizer2D.Rasterizer2D_fillRectangle(var0, var1, var2, var3, 0);
|
|
WorldMapData_1.drawLoadingMessage("Loading - please wait.", false);
|
|
}
|
|
|
|
}
|
|
}
|