rs-client: refactoring and imports

This commit is contained in:
ThatGamerBlue
2020-07-19 17:41:51 +01:00
parent 3fad382843
commit 2c8ca731e6
17 changed files with 152 additions and 133 deletions

View File

@@ -2063,4 +2063,8 @@ public interface Client extends GameShell
* @see KeyCode
*/
boolean isKeyPressed(int keycode);
int getFollowerIndex();
int isItemSelected();
}

View File

@@ -506,9 +506,7 @@ public abstract class RSTileMixin implements RSTile
return;
}
RSNodeDeque itemDeque = newQueue;
if (itemDeque == null)
if (newQueue == null)
{
if (lastUnlink != null)
{
@@ -519,7 +517,7 @@ public abstract class RSTileMixin implements RSTile
}
// The new item gets added to either the head, or the tail, depending on its price
RSNode head = itemDeque.getSentinel();
RSNode head = newQueue.getSentinel();
RSTileItem current = null;
RSNode next = head.getPrevious();
//boolean forward = false;

View File

@@ -1282,4 +1282,12 @@ public interface RSClient extends RSGameShell, Client
@Construct
RSVarbitDefinition newVarbitDefinition();
@Override
@Import("followerIndex")
int getFollowerIndex();
@Override
@Import("isItemSelected")
int isItemSelected();
}

View File

@@ -82,102 +82,102 @@ public class ApproximateRouteStrategy extends RouteStrategy {
garbageValue = "1974138271"
)
@Export("addNpcToMenu")
static final void addNpcToMenu(NPCDefinition var0, int var1, int var2, int var3) {
static final void addNpcToMenu(NPCDefinition npcDef, int npcIdx, int sceneX, int sceneY) {
if (Client.menuOptionsCount < 400) {
if (var0.transforms != null) {
var0 = var0.transform();
if (npcDef.transforms != null) {
npcDef = npcDef.transform();
}
if (var0 != null) {
if (var0.isInteractable) {
if (!var0.isFollower || Client.followerIndex == var1) {
String var4 = var0.name;
if (var0.combatLevel != 0) {
var4 = var4 + Canvas.method924(var0.combatLevel, class60.localPlayer.combatLevel) + " " + " (" + "level-" + var0.combatLevel + ")";
if (npcDef != null) {
if (npcDef.isInteractable) {
if (!npcDef.isFollower || Client.followerIndex == npcIdx) {
String npcName = npcDef.name;
if (npcDef.combatLevel != 0) {
npcName = npcName + Canvas.getColorForCombatDifference(npcDef.combatLevel, class60.localPlayer.combatLevel) + " " + " (" + "level-" + npcDef.combatLevel + ")";
}
if (var0.isFollower && Client.followerOpsLowPriority) {
ScriptEvent.insertMenuItemNoShift("Examine", ItemContainer.colorStartTag(16776960) + var4, 1003, var1, var2, var3);
if (npcDef.isFollower && Client.followerOpsLowPriority) {
ScriptEvent.insertMenuItemNoShift("Examine", ItemContainer.colorStartTag(16776960) + npcName, 1003, npcIdx, sceneX, sceneY);
}
if (Client.isItemSelected == 1) {
ScriptEvent.insertMenuItemNoShift("Use", Client.selectedItemName + " " + "->" + " " + ItemContainer.colorStartTag(16776960) + var4, 7, var1, var2, var3);
ScriptEvent.insertMenuItemNoShift("Use", Client.selectedItemName + " " + "->" + " " + ItemContainer.colorStartTag(16776960) + npcName, 7, npcIdx, sceneX, sceneY);
} else if (Client.isSpellSelected) {
if ((WorldMapSprite.selectedSpellFlags & 2) == 2) {
ScriptEvent.insertMenuItemNoShift(Client.selectedSpellActionName, Client.selectedSpellName + " " + "->" + " " + ItemContainer.colorStartTag(16776960) + var4, 8, var1, var2, var3);
ScriptEvent.insertMenuItemNoShift(Client.selectedSpellActionName, Client.selectedSpellName + " " + "->" + " " + ItemContainer.colorStartTag(16776960) + npcName, 8, npcIdx, sceneX, sceneY);
}
} else {
int var5 = var0.isFollower && Client.followerOpsLowPriority ? 2000 : 0;
String[] var6 = var0.actions;
int var7;
int var8;
if (var6 != null) {
for (var7 = 4; var7 >= 0; --var7) {
if (var6[var7] != null && !var6[var7].equalsIgnoreCase("Attack")) {
var8 = 0;
if (var7 == 0) {
var8 = var5 + 9;
int flwrOffset = npcDef.isFollower && Client.followerOpsLowPriority ? 2000 : 0;
String[] actions = npcDef.actions;
int i;
int opcode;
if (actions != null) {
for (i = 4; i >= 0; --i) {
if (actions[i] != null && !actions[i].equalsIgnoreCase("Attack")) {
opcode = 0;
if (i == 0) {
opcode = flwrOffset + 9;
}
if (var7 == 1) {
var8 = var5 + 10;
if (i == 1) {
opcode = flwrOffset + 10;
}
if (var7 == 2) {
var8 = var5 + 11;
if (i == 2) {
opcode = flwrOffset + 11;
}
if (var7 == 3) {
var8 = var5 + 12;
if (i == 3) {
opcode = flwrOffset + 12;
}
if (var7 == 4) {
var8 = var5 + 13;
if (i == 4) {
opcode = flwrOffset + 13;
}
ScriptEvent.insertMenuItemNoShift(var6[var7], ItemContainer.colorStartTag(16776960) + var4, var8, var1, var2, var3);
ScriptEvent.insertMenuItemNoShift(actions[i], ItemContainer.colorStartTag(16776960) + npcName, opcode, npcIdx, sceneX, sceneY);
}
}
}
if (var6 != null) {
for (var7 = 4; var7 >= 0; --var7) {
if (var6[var7] != null && var6[var7].equalsIgnoreCase("Attack")) {
short var9 = 0;
if (actions != null) {
for (i = 4; i >= 0; --i) {
if (actions[i] != null && actions[i].equalsIgnoreCase("Attack")) {
short atkOffset = 0;
if (AttackOption.AttackOption_hidden != Client.npcAttackOption) {
if (Client.npcAttackOption == AttackOption.AttackOption_alwaysRightClick || Client.npcAttackOption == AttackOption.AttackOption_dependsOnCombatLevels && var0.combatLevel > class60.localPlayer.combatLevel) {
var9 = 2000;
if (Client.npcAttackOption == AttackOption.AttackOption_alwaysRightClick || Client.npcAttackOption == AttackOption.AttackOption_dependsOnCombatLevels && npcDef.combatLevel > class60.localPlayer.combatLevel) {
atkOffset = 2000;
}
var8 = 0;
if (var7 == 0) {
var8 = var9 + 9;
opcode = 0;
if (i == 0) {
opcode = atkOffset + 9;
}
if (var7 == 1) {
var8 = var9 + 10;
if (i == 1) {
opcode = atkOffset + 10;
}
if (var7 == 2) {
var8 = var9 + 11;
if (i == 2) {
opcode = atkOffset + 11;
}
if (var7 == 3) {
var8 = var9 + 12;
if (i == 3) {
opcode = atkOffset + 12;
}
if (var7 == 4) {
var8 = var9 + 13;
if (i == 4) {
opcode = atkOffset + 13;
}
ScriptEvent.insertMenuItemNoShift(var6[var7], ItemContainer.colorStartTag(16776960) + var4, var8, var1, var2, var3);
ScriptEvent.insertMenuItemNoShift(actions[i], ItemContainer.colorStartTag(16776960) + npcName, opcode, npcIdx, sceneX, sceneY);
}
}
}
}
if (!var0.isFollower || !Client.followerOpsLowPriority) {
ScriptEvent.insertMenuItemNoShift("Examine", ItemContainer.colorStartTag(16776960) + var4, 1003, var1, var2, var3);
if (!npcDef.isFollower || !Client.followerOpsLowPriority) {
ScriptEvent.insertMenuItemNoShift("Examine", ItemContainer.colorStartTag(16776960) + npcName, 1003, npcIdx, sceneX, sceneY);
}
}

View File

@@ -89,7 +89,8 @@ public final class Canvas extends java.awt.Canvas {
signature = "(III)Ljava/lang/String;",
garbageValue = "-266618010"
)
static final String method924(int var0, int var1) {
@Export("getColorForCombatDifference")
static final String getColorForCombatDifference(int var0, int var1) {
int var2 = var1 - var0;
if (var2 < -9) {
return ItemContainer.colorStartTag(16711680);

View File

@@ -49,6 +49,6 @@ public final class FloorDecoration {
@ObfuscatedName("o")
static boolean method2977(long var0) {
return class171.method3571(var0) == 2;
return class171.Entity_unpackType(var0) == 2;
}
}

View File

@@ -1162,30 +1162,30 @@ public class Model extends Entity {
var16 = modelViewportYs[var27];
var17 = modelViewportYs[var10];
var18 = var6 + ViewportMouse.ViewportMouse_y;
boolean var32;
boolean isHovered;
if (var18 < var15 && var18 < var16 && var18 < var17) {
var32 = false;
isHovered = false;
} else {
var18 = ViewportMouse.ViewportMouse_y - var6;
if (var18 > var15 && var18 > var16 && var18 > var17) {
var32 = false;
isHovered = false;
} else {
var18 = var6 + ViewportMouse.ViewportMouse_x;
if (var18 < var11 && var18 < var12 && var18 < var13) {
var32 = false;
isHovered = false;
} else {
var18 = ViewportMouse.ViewportMouse_x - var6;
if (var18 > var11 && var18 > var12 && var18 > var13) {
var32 = false;
isHovered = false;
} else {
var32 = true;
isHovered = true;
}
}
}
}
if (var32) {
ObjectSound.method2010(var4);
if (isHovered) {
ObjectSound.addEntityUnderMouse(var4);
var2 = false;
}
}
@@ -1674,7 +1674,7 @@ public class Model extends Entity {
if (var34) {
if (this.isSingleTile) {
ObjectSound.method2010(var9);
ObjectSound.addEntityUnderMouse(var9);
} else {
var33 = true;
}

View File

@@ -161,7 +161,8 @@ public final class ObjectSound extends Node {
}
@ObfuscatedName("w")
static final void method2010(long var0) {
@Export("addEntityUnderMouse")
static final void addEntityUnderMouse(long var0) {
ViewportMouse.ViewportMouse_entityTags[++ViewportMouse.ViewportMouse_entityCount - 1] = var0;
}

View File

@@ -550,7 +550,7 @@ public final class Player extends Actor {
if (Client.menuOptionsCount < 400) {
String var4;
if (var0.skillLevel == 0) {
var4 = var0.actions[0] + var0.username + var0.actions[1] + Canvas.method924(var0.combatLevel, class60.localPlayer.combatLevel) + " " + " (" + "level-" + var0.combatLevel + ")" + var0.actions[2];
var4 = var0.actions[0] + var0.username + var0.actions[1] + Canvas.getColorForCombatDifference(var0.combatLevel, class60.localPlayer.combatLevel) + " " + " (" + "level-" + var0.combatLevel + ")" + var0.actions[2];
} else {
var4 = var0.actions[0] + var0.username + var0.actions[1] + " " + " (" + "skill-" + var0.skillLevel + ")" + var0.actions[2];
}

View File

@@ -789,7 +789,7 @@ public class Scene {
for (int var5 = 0; var5 < var4.gameObjectsCount; ++var5) {
GameObject var6 = var4.gameObjects[var5];
long var8 = var6.tag;
boolean var7 = class171.method3571(var8) == 2;
boolean var7 = class171.Entity_unpackType(var8) == 2;
if (var7 && var2 == var6.startX && var3 == var6.startY) {
return var6.tag;
}

View File

@@ -49,8 +49,9 @@ public class SoundSystem implements Runnable {
signature = "(IB)I",
garbageValue = "101"
)
public static int method2628(int var0) {
return class279.method5159(ViewportMouse.ViewportMouse_entityTags[var0]);
@Export("getSceneXForObjectUnderMouse")
public static int getSceneXForObjectUnderMouse(int var0) {
return class279.Entity_unpackSceneX(ViewportMouse.ViewportMouse_entityTags[var0]);
}
@ObfuscatedName("n")

View File

@@ -179,64 +179,64 @@ public class WorldMapData_1 extends AbstractWorldMapData {
long var6 = -1L;
int var8;
for (var8 = 0; var8 < WorldMapSection2.method372(); ++var8) {
long var9 = WorldMapLabel.method482(var8);
if (var9 != var6) {
var6 = var9;
int var24 = SoundSystem.method2628(var8);
long var14 = ViewportMouse.ViewportMouse_entityTags[var8];
int var13 = (int)(var14 >>> 7 & 127L);
var13 = var13;
int var25 = class171.method3571(ViewportMouse.ViewportMouse_entityTags[var8]);
int var16 = class2.method32(var8);
if (var25 == 2 && UserComparator3.scene.getObjectFlags(TileItemPile.Client_plane, var24, var13, var9) >= 0) {
ObjectDefinition var17 = Canvas.getObjectDefinition(var16);
if (var17.transforms != null) {
var17 = var17.transform();
for (var8 = 0; var8 < WorldMapSection2.getEntityCountUnderMouse(); ++var8) {
long entityTag_1 = WorldMapLabel.getEntityUnderMouse(var8);
if (entityTag_1 != var6) {
var6 = entityTag_1;
int sceneX = SoundSystem.getSceneXForObjectUnderMouse(var8);
long entityTag_2 = ViewportMouse.ViewportMouse_entityTags[var8];
int sceneY = (int)(entityTag_2 >>> 7 & 0x7fL);
sceneY = sceneY;
int interactType = class171.Entity_unpackType(ViewportMouse.ViewportMouse_entityTags[var8]);
int objectId = class2.getEntityIdUnderMouse(var8);
if (interactType == 2 && UserComparator3.scene.getObjectFlags(TileItemPile.Client_plane, sceneX, sceneY, entityTag_1) >= 0) {
ObjectDefinition objectDef = Canvas.getObjectDefinition(objectId);
if (objectDef.transforms != null) {
objectDef = objectDef.transform();
}
if (var17 == null) {
if (objectDef == null) {
continue;
}
if (Client.isItemSelected == 1) {
ScriptEvent.insertMenuItemNoShift("Use", Client.selectedItemName + " " + "->" + " " + ItemContainer.colorStartTag(65535) + var17.name, 1, var16, var24, var13);
ScriptEvent.insertMenuItemNoShift("Use", Client.selectedItemName + " " + "->" + " " + ItemContainer.colorStartTag(65535) + objectDef.name, 1, objectId, sceneX, sceneY);
} else if (Client.isSpellSelected) {
if ((WorldMapSprite.selectedSpellFlags & 4) == 4) {
ScriptEvent.insertMenuItemNoShift(Client.selectedSpellActionName, Client.selectedSpellName + " " + "->" + " " + ItemContainer.colorStartTag(65535) + var17.name, 2, var16, var24, var13);
ScriptEvent.insertMenuItemNoShift(Client.selectedSpellActionName, Client.selectedSpellName + " " + "->" + " " + ItemContainer.colorStartTag(65535) + objectDef.name, 2, objectId, sceneX, sceneY);
}
} else {
String[] var26 = var17.actions;
if (var26 != null) {
for (int var27 = 4; var27 >= 0; --var27) {
if (var26[var27] != null) {
short var20 = 0;
if (var27 == 0) {
var20 = 3;
String[] actions = objectDef.actions;
if (actions != null) {
for (int actionIdx = 4; actionIdx >= 0; --actionIdx) {
if (actions[actionIdx] != null) {
short opcode = 0;
if (actionIdx == 0) {
opcode = 3;
}
if (var27 == 1) {
var20 = 4;
if (actionIdx == 1) {
opcode = 4;
}
if (var27 == 2) {
var20 = 5;
if (actionIdx == 2) {
opcode = 5;
}
if (var27 == 3) {
var20 = 6;
if (actionIdx == 3) {
opcode = 6;
}
if (var27 == 4) {
var20 = 1001;
if (actionIdx == 4) {
opcode = 1001;
}
ScriptEvent.insertMenuItemNoShift(var26[var27], ItemContainer.colorStartTag(65535) + var17.name, var20, var16, var24, var13);
ScriptEvent.insertMenuItemNoShift(actions[actionIdx], ItemContainer.colorStartTag(65535) + objectDef.name, opcode, objectId, sceneX, sceneY);
}
}
}
ScriptEvent.insertMenuItemNoShift("Examine", ItemContainer.colorStartTag(65535) + var17.name, 1002, var17.id, var24, var13);
ScriptEvent.insertMenuItemNoShift("Examine", ItemContainer.colorStartTag(65535) + objectDef.name, 1002, objectDef.id, sceneX, sceneY);
}
}
@@ -245,8 +245,8 @@ public class WorldMapData_1 extends AbstractWorldMapData {
Player var21;
int[] var33;
int var35;
if (var25 == 1) {
NPC var30 = Client.npcs[var16];
if (interactType == 1) {
NPC var30 = Client.npcs[objectId];
if (var30 == null) {
continue;
}
@@ -255,7 +255,7 @@ public class WorldMapData_1 extends AbstractWorldMapData {
for (var18 = 0; var18 < Client.npcCount; ++var18) {
var19 = Client.npcs[Client.npcIndices[var18]];
if (var19 != null && var30 != var19 && var19.definition.size == 1 && var19.x == var30.x && var19.y == var30.y) {
ApproximateRouteStrategy.addNpcToMenu(var19.definition, Client.npcIndices[var18], var24, var13);
ApproximateRouteStrategy.addNpcToMenu(var19.definition, Client.npcIndices[var18], sceneX, sceneY);
}
}
@@ -265,16 +265,16 @@ public class WorldMapData_1 extends AbstractWorldMapData {
for (var35 = 0; var35 < var18; ++var35) {
var21 = Client.players[var33[var35]];
if (var21 != null && var30.x == var21.x && var30.y == var21.y) {
Player.addPlayerToMenu(var21, var33[var35], var24, var13);
Player.addPlayerToMenu(var21, var33[var35], sceneX, sceneY);
}
}
}
ApproximateRouteStrategy.addNpcToMenu(var30.definition, var16, var24, var13);
ApproximateRouteStrategy.addNpcToMenu(var30.definition, objectId, sceneX, sceneY);
}
if (var25 == 0) {
Player var31 = Client.players[var16];
if (interactType == 0) {
Player var31 = Client.players[objectId];
if (var31 == null) {
continue;
}
@@ -283,7 +283,7 @@ public class WorldMapData_1 extends AbstractWorldMapData {
for (var18 = 0; var18 < Client.npcCount; ++var18) {
var19 = Client.npcs[Client.npcIndices[var18]];
if (var19 != null && var19.definition.size == 1 && var31.x == var19.x && var31.y == var19.y) {
ApproximateRouteStrategy.addNpcToMenu(var19.definition, Client.npcIndices[var18], var24, var13);
ApproximateRouteStrategy.addNpcToMenu(var19.definition, Client.npcIndices[var18], sceneX, sceneY);
}
}
@@ -293,28 +293,28 @@ public class WorldMapData_1 extends AbstractWorldMapData {
for (var35 = 0; var35 < var18; ++var35) {
var21 = Client.players[var33[var35]];
if (var21 != null && var21 != var31 && var21.x == var31.x && var31.y == var21.y) {
Player.addPlayerToMenu(var21, var33[var35], var24, var13);
Player.addPlayerToMenu(var21, var33[var35], sceneX, sceneY);
}
}
}
if (var16 != Client.combatTargetPlayerIndex) {
Player.addPlayerToMenu(var31, var16, var24, var13);
if (objectId != Client.combatTargetPlayerIndex) {
Player.addPlayerToMenu(var31, objectId, sceneX, sceneY);
} else {
var4 = var9;
var4 = entityTag_1;
}
}
if (var25 == 3) {
NodeDeque var32 = Client.groundItems[TileItemPile.Client_plane][var24][var13];
if (interactType == 3) {
NodeDeque var32 = Client.groundItems[TileItemPile.Client_plane][sceneX][sceneY];
if (var32 != null) {
for (TileItem var36 = (TileItem)var32.first(); var36 != null; var36 = (TileItem)var32.next()) {
ItemDefinition var34 = KitDefinition.ItemDefinition_get(var36.id);
if (Client.isItemSelected == 1) {
ScriptEvent.insertMenuItemNoShift("Use", Client.selectedItemName + " " + "->" + " " + ItemContainer.colorStartTag(16748608) + var34.name, 16, var36.id, var24, var13);
ScriptEvent.insertMenuItemNoShift("Use", Client.selectedItemName + " " + "->" + " " + ItemContainer.colorStartTag(16748608) + var34.name, 16, var36.id, sceneX, sceneY);
} else if (Client.isSpellSelected) {
if ((WorldMapSprite.selectedSpellFlags & 1) == 1) {
ScriptEvent.insertMenuItemNoShift(Client.selectedSpellActionName, Client.selectedSpellName + " " + "->" + " " + ItemContainer.colorStartTag(16748608) + var34.name, 17, var36.id, var24, var13);
ScriptEvent.insertMenuItemNoShift(Client.selectedSpellActionName, Client.selectedSpellName + " " + "->" + " " + ItemContainer.colorStartTag(16748608) + var34.name, 17, var36.id, sceneX, sceneY);
}
} else {
String[] var28 = var34.groundActions;
@@ -342,13 +342,13 @@ public class WorldMapData_1 extends AbstractWorldMapData {
var22 = 22;
}
ScriptEvent.insertMenuItemNoShift(var28[var29], ItemContainer.colorStartTag(16748608) + var34.name, var22, var36.id, var24, var13);
ScriptEvent.insertMenuItemNoShift(var28[var29], ItemContainer.colorStartTag(16748608) + var34.name, var22, var36.id, sceneX, sceneY);
} else if (var29 == 2) {
ScriptEvent.insertMenuItemNoShift("Take", ItemContainer.colorStartTag(16748608) + var34.name, 20, var36.id, var24, var13);
ScriptEvent.insertMenuItemNoShift("Take", ItemContainer.colorStartTag(16748608) + var34.name, 20, var36.id, sceneX, sceneY);
}
}
ScriptEvent.insertMenuItemNoShift("Examine", ItemContainer.colorStartTag(16748608) + var34.name, 1004, var36.id, var24, var13);
ScriptEvent.insertMenuItemNoShift("Examine", ItemContainer.colorStartTag(16748608) + var34.name, 1004, var36.id, sceneX, sceneY);
}
}
}
@@ -357,10 +357,10 @@ public class WorldMapData_1 extends AbstractWorldMapData {
}
if (-1L != var4) {
var8 = class279.method5159(var4);
int var23 = (int)(var4 >>> 7 & 127L);
var8 = class279.Entity_unpackSceneX(var4);
int pSceneY = (int)(var4 >>> 7 & 127L);
Player var11 = Client.players[Client.combatTargetPlayerIndex];
Player.addPlayerToMenu(var11, Client.combatTargetPlayerIndex, var8, var23);
Player.addPlayerToMenu(var11, Client.combatTargetPlayerIndex, var8, pSceneY);
}
}

View File

@@ -402,7 +402,8 @@ public class WorldMapLabel {
signature = "(IB)J",
garbageValue = "88"
)
public static long method482(int var0) {
@Export("getEntityUnderMouse")
public static long getEntityUnderMouse(int var0) {
return ViewportMouse.ViewportMouse_entityTags[var0];
}

View File

@@ -181,7 +181,8 @@ public class WorldMapSection2 implements WorldMapSection {
signature = "(I)I",
garbageValue = "-2012901203"
)
public static int method372() {
@Export("getEntityCountUnderMouse")
public static int getEntityCountUnderMouse() {
return ViewportMouse.ViewportMouse_entityCount;
}

View File

@@ -8,7 +8,8 @@ public class class171 implements class170 {
static byte[][][] field2036;
@ObfuscatedName("g")
public static int method3571(long var0) {
@Export("Entity_unpackType")
public static int Entity_unpackType(long var0) {
return (int)(var0 >>> 14 & 3L);
}

View File

@@ -43,7 +43,8 @@ final class class2 implements class0 {
signature = "(IS)I",
garbageValue = "-12961"
)
public static int method32(int var0) {
@Export("getEntityIdUnderMouse")
public static int getEntityIdUnderMouse(int var0) {
return Language.Entity_unpackID(ViewportMouse.ViewportMouse_entityTags[var0]);
}

View File

@@ -1,9 +1,11 @@
import net.runelite.mapping.Export;
import net.runelite.mapping.ObfuscatedName;
@ObfuscatedName("jh")
public class class279 {
@ObfuscatedName("p")
public static int method5159(long var0) {
@Export("Entity_unpackSceneX")
public static int Entity_unpackSceneX(long var0) {
return (int)(var0 >>> 0 & 127L);
}
}