Merge remote-tracking branch 'runelite/master'

This commit is contained in:
Owain van Brakel
2021-07-07 13:20:23 +02:00
34 changed files with 311 additions and 94 deletions

View File

@@ -7368,7 +7368,7 @@ public final class NpcID
public static final int AMELIA = 8180;
public static final int JONATHAN = 8181;
public static final int NATURAL_HISTORIAN_8182 = 8182;
public static final int LITTLE_PARASAITE = 8183;
public static final int LITTLE_PARASITE = 8183;
public static final int BOULDER_8188 = 8188;
public static final int GRAVE_DIGGER = 8189;
public static final int JAMES = 8193;
@@ -7634,7 +7634,7 @@ public final class NpcID
public static final int ELISE = 8538;
public static final int ARC_TEST_01 = 8539;
public static final int ARC_TEST_02 = 8540;
public static final int LITTLE_PARASITE = 8541;
public static final int LITTLE_PARASITE_8541 = 8541;
public static final int ROYAL_GUARD = 8542;
public static final int ROYAL_GUARD_8543 = 8543;
public static final int UNDOR = 8544;

View File

@@ -411,37 +411,42 @@ public class Perspective
int plane,
int zOffset)
{
final int swX = localLocation.getX() - (sizeX * LOCAL_TILE_SIZE / 2);
final int swY = localLocation.getY() - (sizeY * LOCAL_TILE_SIZE / 2);
final int neX = localLocation.getX() + (sizeX * LOCAL_TILE_SIZE / 2);
final int neY = localLocation.getY() + (sizeY * LOCAL_TILE_SIZE / 2);
final byte[][][] tileSettings = client.getTileSettings();
final int sceneX = localLocation.getSceneX();
final int sceneY = localLocation.getSceneY();
if (sceneX < 0 || sceneY < 0 || sceneX >= SCENE_SIZE || sceneY >= SCENE_SIZE)
if (!localLocation.isInScene())
{
return null;
}
final byte[][][] tileSettings = client.getTileSettings();
final int sceneX = localLocation.getSceneX();
final int sceneY = localLocation.getSceneY();
int tilePlane = plane;
if (plane < Constants.MAX_Z - 1 && (tileSettings[1][sceneX][sceneY] & TILE_FLAG_BRIDGE) == TILE_FLAG_BRIDGE)
{
tilePlane = plane + 1;
}
final int swX = localLocation.getX() - (sizeX * LOCAL_TILE_SIZE / 2);
final int swY = localLocation.getY() - (sizeY * LOCAL_TILE_SIZE / 2);
final int neX = localLocation.getX() + (sizeX * LOCAL_TILE_SIZE / 2);
final int neY = localLocation.getY() + (sizeY * LOCAL_TILE_SIZE / 2);
final int seX = swX;
final int seY = neY;
final int nwX = neX;
final int nwY = swY;
final int swHeight = getHeight(client, swX, swY, tilePlane) - zOffset;
final int nwHeight = getHeight(client, neX, swY, tilePlane) - zOffset;
final int nwHeight = getHeight(client, nwX, nwY, tilePlane) - zOffset;
final int neHeight = getHeight(client, neX, neY, tilePlane) - zOffset;
final int seHeight = getHeight(client, swX, neY, tilePlane) - zOffset;
final int seHeight = getHeight(client, seX, seY, tilePlane) - zOffset;
Point p1 = localToCanvas(client, swX, swY, swHeight);
Point p2 = localToCanvas(client, neX, swY, nwHeight);
Point p2 = localToCanvas(client, nwX, nwY, nwHeight);
Point p3 = localToCanvas(client, neX, neY, neHeight);
Point p4 = localToCanvas(client, swX, neY, seHeight);
Point p4 = localToCanvas(client, seX, seY, seHeight);
if (p1 == null || p2 == null || p3 == null || p4 == null)
{

View File

@@ -95,6 +95,16 @@ public class LocalPoint
return (int) Math.hypot(getX() - other.getX(), getY() - other.getY());
}
/**
* Test if this point is in the loaded scene, a 104x104 tile area.
* @return
*/
public boolean isInScene()
{
return x >= 0 && x < Perspective.SCENE_SIZE << Perspective.LOCAL_COORD_BITS
&& y >= 0 && y < Perspective.SCENE_SIZE << Perspective.LOCAL_COORD_BITS;
}
/**
* Gets the coordinate at the center of the passed tile.
*
@@ -117,7 +127,7 @@ public class LocalPoint
*/
public int getSceneX()
{
return x >>> Perspective.LOCAL_COORD_BITS;
return x >> Perspective.LOCAL_COORD_BITS;
}
/**
@@ -127,6 +137,6 @@ public class LocalPoint
*/
public int getSceneY()
{
return y >>> Perspective.LOCAL_COORD_BITS;
return y >> Perspective.LOCAL_COORD_BITS;
}
}

View File

@@ -38,9 +38,8 @@ public class OverlayIndex
static
{
InputStream indexStream = OverlayIndex.class.getResourceAsStream("/runelite/index");
try (DataInputStream in = new DataInputStream(indexStream))
try (InputStream indexStream = OverlayIndex.class.getResourceAsStream("/runelite/index");
DataInputStream in = new DataInputStream(indexStream))
{
int id;
while ((id = in.readInt()) != -1)

View File

@@ -76,7 +76,6 @@ public class WidgetID
public static final int SLAYER_REWARDS_GROUP_ID = 426;
public static final int PRIVATE_CHAT = 163;
public static final int CHATBOX_GROUP_ID = 162;
public static final int WORLD_MAP_MENU_GROUP_ID = 160;
public static final int VOLCANIC_MINE_GROUP_ID = 611;
public static final int BA_ATTACKER_GROUP_ID = 485;
public static final int BA_COLLECTOR_GROUP_ID = 486;
@@ -189,8 +188,7 @@ public class WidgetID
static final int BOTTOM_BAR = 23;
static final int SEARCH = 26;
static final int SURFACE_SELECTOR = 34;
static final int TOOLTIP = 43;
static final int OPTION = 48;
static final int TOOLTIP = 41;
}
static class SlayerRewards
@@ -431,6 +429,7 @@ public class WidgetID
static final int SPEC_CLICKBOX = 31;
static final int WORLDMAP_ORB = 43;
static final int WIKI_BANNER = 45;
static final int WORLDMAP_OPTIONS = 48;
}
static class LoginClickToPlayScreen
@@ -750,8 +749,8 @@ public class WidgetID
static class ExperienceTracker
{
static final int WIDGET = 3;
static final int BOTTOM_BAR = 15;
static final int WIDGET = 4;
static final int BOTTOM_BAR = 16;
}
static class FairyRingPanel

View File

@@ -55,7 +55,6 @@ public enum WidgetInfo
WORLD_MAP_SEARCH(WidgetID.WORLD_MAP_GROUP_ID, WidgetID.WorldMap.SEARCH),
WORLD_MAP_SURFACE_SELECTOR(WidgetID.WORLD_MAP_GROUP_ID, WidgetID.WorldMap.SURFACE_SELECTOR),
WORLD_MAP_TOOLTIP(WidgetID.WORLD_MAP_GROUP_ID, WidgetID.WorldMap.TOOLTIP),
WORLD_MAP_OPTION(WidgetID.WORLD_MAP_MENU_GROUP_ID, WidgetID.WorldMap.OPTION),
CLUE_SCROLL_TEXT(WidgetID.CLUE_SCROLL_GROUP_ID, WidgetID.Cluescroll.CLUE_TEXT),
CLUE_SCROLL_REWARD_ITEM_CONTAINER(WidgetID.CLUE_SCROLL_REWARD_GROUP_ID, WidgetID.Cluescroll.CLUE_SCROLL_ITEM_CONTAINER),
@@ -184,6 +183,7 @@ public enum WidgetInfo
MINIMAP_SPEC_CLICKBOX(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.SPEC_CLICKBOX),
MINIMAP_WORLDMAP_ORB(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.WORLDMAP_ORB),
MINIMAP_WIKI_BANNER(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.WIKI_BANNER),
MINIMAP_WORLDMAP_OPTIONS(WidgetID.MINIMAP_GROUP_ID, WidgetID.Minimap.WORLDMAP_OPTIONS),
LMS_INFO(WidgetID.LMS_GROUP_ID, WidgetID.Lms.INFO),
LMS_KDA(WidgetID.LMS_INGAME_GROUP_ID, WidgetID.LmsKDA.INFO),
@@ -532,7 +532,7 @@ public enum WidgetInfo
GAUNTLET_TIMER_CONTAINER(WidgetID.GAUNTLET_TIMER_GROUP_ID, WidgetID.GauntletTimer.CONTAINER),
HALLOWED_SEPULCHRE_TIMER_CONTAINER(WidgetID.HALLOWED_SEPULCHRE_TIMER_GROUP_ID, WidgetID.HallowedSepulchreTimer.CONTAINER),
HEALTH_OVERLAY_BAR(WidgetID.HEALTH_OVERLAY_BAR_GROUP_ID, 4),
HEALTH_OVERLAY_BAR(WidgetID.HEALTH_OVERLAY_BAR_GROUP_ID, 5),
TRAILBLAZER_AREA_TELEPORT(WidgetID.TRAILBLAZER_AREAS_GROUP_ID, WidgetID.TrailblazerAreas.TELEPORT),