Merge remote-tracking branch 'runelite/master'
This commit is contained in:
@@ -314,6 +314,8 @@ public class Notifier
|
||||
commands.add("notify-send");
|
||||
commands.add(title);
|
||||
commands.add(message);
|
||||
commands.add("-a");
|
||||
commands.add(SHELL_ESCAPE.escape(appName));
|
||||
commands.add("-i");
|
||||
commands.add(SHELL_ESCAPE.escape(notifyIconPath.toAbsolutePath().toString()));
|
||||
commands.add("-u");
|
||||
|
||||
@@ -326,7 +326,9 @@ public class CrypticClue extends ClueScroll implements TextClueScroll, NpcClueSc
|
||||
new CrypticClue("A graceful man of many colours, his crates must be full of many delights.", "Hill Giant", CRATE_42067, new WorldPoint(1506, 3590, 2), "Kill any Hill Giant for a medium key. Then search the crate on the top floor of Osten's clothing shop in Shayzien."),
|
||||
new CrypticClue("Search the basket of apples in an orchard, south of the unknown grave surrounded by white roses.", APPLE_BASKET, new WorldPoint(1718, 3626, 0), "Search the middle apple basket in the apple orchard north of Hosidius."),
|
||||
new CrypticClue("Dig in the lair of red wings, within the temple of the Sun and Moon.", new WorldPoint(1820, 9935, 0), "Forthos Dungeon. In the center of the red dragons."),
|
||||
new CrypticClue("Within the town of Lumbridge lives a man named Bob. He walks out of his door and takes 1 step east, 7 steps north, 5 steps west and 1 step south. Once he arrives, he digs a hole and buries his treasure.", new WorldPoint(3230, 3209, 0), "Just west of the bush outside Bob's axe shop in Lumbridge.")
|
||||
new CrypticClue("Within the town of Lumbridge lives a man named Bob. He walks out of his door and takes 1 step east, 7 steps north, 5 steps west and 1 step south. Once he arrives, he digs a hole and buries his treasure.", new WorldPoint(3230, 3209, 0), "Just west of the bush outside Bob's axe shop in Lumbridge."),
|
||||
new CrypticClue("Try not to let yourself be dazzled when you search these drawers.", DRAWERS_350, new WorldPoint(2561, 3323, 0), "Search the western drawers in Jimmy Dazzler's home near the East Ardougne Rat Pits."),
|
||||
new CrypticClue("The Big High War God left his mark on this place.", new WorldPoint(3572, 4372, 0), "Dig anywhere in Yu'biusk. Fairy ring BLQ.")
|
||||
);
|
||||
|
||||
private final String text;
|
||||
|
||||
@@ -54,6 +54,7 @@ public enum FairyRings
|
||||
BKR("Mort Myre Swamp, south of Canifis"),
|
||||
BKS("Zanaris"),
|
||||
BLP("TzHaar area"),
|
||||
BLQ("Yu'biusk"),
|
||||
BLR("Legends' Guild"),
|
||||
|
||||
// C
|
||||
|
||||
@@ -434,8 +434,9 @@ class SceneUploader
|
||||
len += 3;
|
||||
continue;
|
||||
}
|
||||
// HSL override is not applied to flat shade faces or to textured faces
|
||||
else if (faceTextures == null || faceTextures[face] == -1)
|
||||
|
||||
// HSL override is not applied to textured faces
|
||||
if (faceTextures == null || faceTextures[face] == -1)
|
||||
{
|
||||
if (overrideAmount > 0)
|
||||
{
|
||||
@@ -525,8 +526,9 @@ class SceneUploader
|
||||
}
|
||||
return 3;
|
||||
}
|
||||
// HSL override is not applied to flat shade faces or to textured faces
|
||||
else if (faceTextures == null || faceTextures[face] == -1)
|
||||
|
||||
// HSL override is not applied to textured faces
|
||||
if (faceTextures == null || faceTextures[face] == -1)
|
||||
{
|
||||
if (overrideAmount > 0)
|
||||
{
|
||||
|
||||
@@ -205,6 +205,8 @@ public class LootTrackerPlugin extends Plugin
|
||||
private static final String HALLOWED_SEPULCHRE_COFFIN_EVENT = "Coffin (Hallowed Sepulchre)";
|
||||
private static final Set<Integer> HALLOWED_SEPULCHRE_MAP_REGIONS = ImmutableSet.of(8797, 10077, 9308, 10074, 9050); // one map region per floor
|
||||
|
||||
private static final String HALLOWED_SACK_EVENT = "Hallowed Sack";
|
||||
|
||||
// Last man standing map regions
|
||||
private static final Set<Integer> LAST_MAN_STANDING_REGIONS = ImmutableSet.of(13658, 13659, 13660, 13914, 13915, 13916, 13918, 13919, 13920, 14174, 14175, 14176, 14430, 14431, 14432);
|
||||
|
||||
@@ -791,6 +793,7 @@ public class LootTrackerPlugin extends Plugin
|
||||
if (CHEST_EVENT_TYPES.containsValue(eventType)
|
||||
|| SHADE_CHEST_OBJECTS.containsValue(eventType)
|
||||
|| HALLOWED_SEPULCHRE_COFFIN_EVENT.equals(eventType)
|
||||
|| HALLOWED_SACK_EVENT.equals(eventType)
|
||||
|| HERBIBOAR_EVENT.equals(eventType)
|
||||
|| HESPORI_EVENT.equals(eventType)
|
||||
|| WINTERTODT_SUPPLY_CRATE_EVENT.equals(eventType)
|
||||
@@ -876,6 +879,10 @@ public class LootTrackerPlugin extends Plugin
|
||||
setEvent(LootRecordType.EVENT, MAHOGANY_CRATE_EVENT, client.getBoostedSkillLevel(Skill.CONSTRUCTION));
|
||||
takeInventorySnapshot();
|
||||
break;
|
||||
case ItemID.HALLOWED_SACK:
|
||||
setEvent(LootRecordType.EVENT, HALLOWED_SACK_EVENT);
|
||||
takeInventorySnapshot();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,4 +41,5 @@ public class ScreenMarker
|
||||
private Color color;
|
||||
private Color fill;
|
||||
private boolean visible;
|
||||
private boolean labelled;
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ import java.awt.event.MouseEvent;
|
||||
import javax.swing.SwingUtilities;
|
||||
import net.runelite.client.input.MouseAdapter;
|
||||
|
||||
public class ScreenMarkerMouseListener extends MouseAdapter
|
||||
class ScreenMarkerMouseListener extends MouseAdapter
|
||||
{
|
||||
private final ScreenMarkerPlugin plugin;
|
||||
|
||||
|
||||
@@ -78,7 +78,8 @@ public class ScreenMarkerOverlay extends Overlay
|
||||
screenMarkerRenderable.setColor(marker.getColor());
|
||||
screenMarkerRenderable.setFill(marker.getFill());
|
||||
screenMarkerRenderable.setStroke(new BasicStroke(marker.getBorderThickness()));
|
||||
screenMarkerRenderable.setPreferredSize(preferredSize);
|
||||
screenMarkerRenderable.setSize(preferredSize);
|
||||
screenMarkerRenderable.setLabel(marker.isLabelled() ? marker.getName() : "");
|
||||
return screenMarkerRenderable.render(graphics);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -203,7 +203,8 @@ public class ScreenMarkerPlugin extends Plugin
|
||||
pluginPanel.getSelectedBorderThickness(),
|
||||
pluginPanel.getSelectedColor(),
|
||||
pluginPanel.getSelectedFillColor(),
|
||||
true
|
||||
true,
|
||||
false
|
||||
);
|
||||
|
||||
// Set overlay creator bounds to current position and default size
|
||||
|
||||
@@ -27,44 +27,29 @@ package net.runelite.client.plugins.screenmarkers;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Point;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.Stroke;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import net.runelite.client.ui.overlay.components.LayoutableRenderableEntity;
|
||||
import net.runelite.client.ui.overlay.RenderableEntity;
|
||||
|
||||
public class ScreenMarkerRenderable implements LayoutableRenderableEntity
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
@Setter(AccessLevel.PACKAGE)
|
||||
class ScreenMarkerRenderable implements RenderableEntity
|
||||
{
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
@Setter
|
||||
private Point preferredLocation;
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
@Setter
|
||||
private Dimension preferredSize;
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
@Setter(AccessLevel.PACKAGE)
|
||||
private Dimension size;
|
||||
private int borderThickness;
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
@Setter(AccessLevel.PACKAGE)
|
||||
private Color color;
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
@Setter(AccessLevel.PACKAGE)
|
||||
private Color fill;
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
@Setter(AccessLevel.PACKAGE)
|
||||
private Stroke stroke;
|
||||
|
||||
@Getter
|
||||
private final Rectangle bounds = new Rectangle();
|
||||
private String label;
|
||||
|
||||
@Override
|
||||
public Dimension render(Graphics2D graphics)
|
||||
{
|
||||
int thickness = borderThickness;
|
||||
int width = preferredSize.width;
|
||||
int height = preferredSize.height;
|
||||
int width = size.width;
|
||||
int height = size.height;
|
||||
|
||||
//draw the fill
|
||||
graphics.setColor(fill);
|
||||
@@ -76,7 +61,12 @@ public class ScreenMarkerRenderable implements LayoutableRenderableEntity
|
||||
graphics.setColor(color);
|
||||
graphics.setStroke(stroke);
|
||||
graphics.drawRect(offset, offset, width - thickness, height - thickness);
|
||||
bounds.setSize(preferredSize);
|
||||
return preferredSize;
|
||||
|
||||
if (!label.isEmpty())
|
||||
{
|
||||
graphics.drawString(label, 0, 0);
|
||||
}
|
||||
|
||||
return size;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,6 +53,7 @@ import net.runelite.client.ui.ColorScheme;
|
||||
import net.runelite.client.ui.FontManager;
|
||||
import net.runelite.client.ui.components.FlatTextField;
|
||||
import net.runelite.client.ui.components.colorpicker.RuneliteColorPicker;
|
||||
import net.runelite.client.util.ColorUtil;
|
||||
import net.runelite.client.util.ImageUtil;
|
||||
|
||||
class ScreenMarkerPanel extends JPanel
|
||||
@@ -73,10 +74,10 @@ class ScreenMarkerPanel extends JPanel
|
||||
private static final ImageIcon NO_FILL_COLOR_ICON;
|
||||
private static final ImageIcon NO_FILL_COLOR_HOVER_ICON;
|
||||
|
||||
private static final ImageIcon FULL_OPACITY_ICON;
|
||||
private static final ImageIcon FULL_OPACITY_HOVER_ICON;
|
||||
private static final ImageIcon NO_OPACITY_ICON;
|
||||
private static final ImageIcon NO_OPACITY_HOVER_ICON;
|
||||
private static final ImageIcon LABEL_ICON;
|
||||
private static final ImageIcon LABEL_HOVER_ICON;
|
||||
private static final ImageIcon NO_LABEL_ICON;
|
||||
private static final ImageIcon NO_LABEL_HOVER_ICON;
|
||||
|
||||
private static final ImageIcon VISIBLE_ICON;
|
||||
private static final ImageIcon VISIBLE_HOVER_ICON;
|
||||
@@ -91,7 +92,7 @@ class ScreenMarkerPanel extends JPanel
|
||||
|
||||
private final JLabel borderColorIndicator = new JLabel();
|
||||
private final JLabel fillColorIndicator = new JLabel();
|
||||
private final JLabel opacityIndicator = new JLabel();
|
||||
private final JLabel labelIndicator = new JLabel();
|
||||
private final JLabel visibilityLabel = new JLabel();
|
||||
private final JLabel deleteLabel = new JLabel();
|
||||
|
||||
@@ -104,6 +105,7 @@ class ScreenMarkerPanel extends JPanel
|
||||
private final JSpinner thicknessSpinner = new JSpinner(spinnerModel);
|
||||
|
||||
private boolean visible;
|
||||
private boolean showLabel;
|
||||
|
||||
static
|
||||
{
|
||||
@@ -123,13 +125,13 @@ class ScreenMarkerPanel extends JPanel
|
||||
NO_FILL_COLOR_ICON = new ImageIcon(fillImgHover);
|
||||
NO_FILL_COLOR_HOVER_ICON = new ImageIcon(ImageUtil.alphaOffset(fillImgHover, -100));
|
||||
|
||||
final BufferedImage opacityImg = ImageUtil.loadImageResource(ScreenMarkerPlugin.class, "opacity_icon.png");
|
||||
final BufferedImage opacityImgHover = ImageUtil.luminanceOffset(opacityImg, -150);
|
||||
FULL_OPACITY_ICON = new ImageIcon(opacityImg);
|
||||
FULL_OPACITY_HOVER_ICON = new ImageIcon(opacityImgHover);
|
||||
final BufferedImage labelImg = ImageUtil.loadImageResource(ScreenMarkerPlugin.class, "label_icon.png");
|
||||
final BufferedImage labelImgHover = ImageUtil.luminanceOffset(labelImg, -150);
|
||||
LABEL_ICON = new ImageIcon(labelImg);
|
||||
LABEL_HOVER_ICON = new ImageIcon(labelImgHover);
|
||||
|
||||
NO_OPACITY_ICON = new ImageIcon(opacityImgHover);
|
||||
NO_OPACITY_HOVER_ICON = new ImageIcon(ImageUtil.alphaOffset(opacityImgHover, -100));
|
||||
NO_LABEL_ICON = new ImageIcon(labelImgHover);
|
||||
NO_LABEL_HOVER_ICON = new ImageIcon(ImageUtil.alphaOffset(labelImgHover, -100));
|
||||
|
||||
final BufferedImage visibleImg = ImageUtil.loadImageResource(ScreenMarkerPlugin.class, "visible_icon.png");
|
||||
VISIBLE_ICON = new ImageIcon(visibleImg);
|
||||
@@ -149,6 +151,7 @@ class ScreenMarkerPanel extends JPanel
|
||||
this.plugin = plugin;
|
||||
this.marker = marker;
|
||||
this.visible = marker.getMarker().isVisible();
|
||||
this.showLabel = marker.getMarker().isLabelled();
|
||||
|
||||
setLayout(new BorderLayout());
|
||||
setBackground(ColorScheme.DARKER_GRAY_COLOR);
|
||||
@@ -331,50 +334,37 @@ class ScreenMarkerPanel extends JPanel
|
||||
thicknessSpinner.setValue(marker.getMarker().getBorderThickness());
|
||||
thicknessSpinner.setPreferredSize(new Dimension(50, 20));
|
||||
thicknessSpinner.addChangeListener(ce -> updateThickness(true));
|
||||
thicknessSpinner.setToolTipText("Border thickness");
|
||||
|
||||
opacityIndicator.setToolTipText("Toggle background transparency");
|
||||
opacityIndicator.addMouseListener(new MouseAdapter()
|
||||
labelIndicator.addMouseListener(new MouseAdapter()
|
||||
{
|
||||
@Override
|
||||
public void mousePressed(MouseEvent mouseEvent)
|
||||
{
|
||||
final Color fill = marker.getMarker().getFill();
|
||||
|
||||
if (fill.getAlpha() == 0)
|
||||
{
|
||||
marker.getMarker().setFill(new Color(fill.getRed(), fill.getGreen(), fill.getBlue(), DEFAULT_FILL_OPACITY));
|
||||
}
|
||||
else
|
||||
{
|
||||
marker.getMarker().setFill(new Color(fill.getRed(), fill.getGreen(), fill.getBlue(), 0));
|
||||
}
|
||||
|
||||
updateFill();
|
||||
plugin.updateConfig();
|
||||
toggleLabelling(!showLabel);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseEntered(MouseEvent mouseEvent)
|
||||
{
|
||||
opacityIndicator.setIcon(marker.getMarker().getFill().getAlpha() == 0 ? NO_OPACITY_HOVER_ICON : FULL_OPACITY_HOVER_ICON);
|
||||
labelIndicator.setIcon(showLabel ? LABEL_HOVER_ICON : NO_LABEL_HOVER_ICON);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseExited(MouseEvent mouseEvent)
|
||||
{
|
||||
opacityIndicator.setIcon(marker.getMarker().getFill().getAlpha() == 0 ? NO_OPACITY_ICON : FULL_OPACITY_ICON);
|
||||
labelIndicator.setIcon(showLabel ? LABEL_ICON : NO_LABEL_ICON);
|
||||
}
|
||||
});
|
||||
|
||||
leftActions.add(borderColorIndicator);
|
||||
leftActions.add(fillColorIndicator);
|
||||
leftActions.add(opacityIndicator);
|
||||
leftActions.add(labelIndicator);
|
||||
leftActions.add(thicknessSpinner);
|
||||
|
||||
JPanel rightActions = new JPanel(new FlowLayout(FlowLayout.RIGHT, 8, 0));
|
||||
rightActions.setBackground(ColorScheme.DARKER_GRAY_COLOR);
|
||||
|
||||
visibilityLabel.setToolTipText(visible ? "Hide screen marker" : "Show screen marker");
|
||||
visibilityLabel.addMouseListener(new MouseAdapter()
|
||||
{
|
||||
@Override
|
||||
@@ -439,7 +429,7 @@ class ScreenMarkerPanel extends JPanel
|
||||
updateFill();
|
||||
updateBorder();
|
||||
updateBorder();
|
||||
|
||||
updateLabelling();
|
||||
}
|
||||
|
||||
private void preview(boolean on)
|
||||
@@ -460,6 +450,14 @@ class ScreenMarkerPanel extends JPanel
|
||||
updateVisibility();
|
||||
}
|
||||
|
||||
private void toggleLabelling(boolean on)
|
||||
{
|
||||
showLabel = on;
|
||||
marker.getMarker().setLabelled(showLabel);
|
||||
plugin.updateConfig();
|
||||
updateLabelling();
|
||||
}
|
||||
|
||||
private void save()
|
||||
{
|
||||
marker.getMarker().setName(nameInput.getText());
|
||||
@@ -505,6 +503,13 @@ class ScreenMarkerPanel extends JPanel
|
||||
private void updateVisibility()
|
||||
{
|
||||
visibilityLabel.setIcon(visible ? VISIBLE_ICON : INVISIBLE_ICON);
|
||||
visibilityLabel.setToolTipText(visible ? "Hide screen marker" : "Show screen marker");
|
||||
}
|
||||
|
||||
private void updateLabelling()
|
||||
{
|
||||
labelIndicator.setIcon(showLabel ? LABEL_ICON : NO_LABEL_ICON);
|
||||
labelIndicator.setToolTipText(showLabel ? "Hide label" : "Show label");
|
||||
}
|
||||
|
||||
private void updateFill()
|
||||
@@ -523,7 +528,6 @@ class ScreenMarkerPanel extends JPanel
|
||||
}
|
||||
|
||||
fillColorIndicator.setIcon(isFullyTransparent ? NO_FILL_COLOR_ICON : FILL_COLOR_ICON);
|
||||
opacityIndicator.setIcon(isFullyTransparent ? NO_OPACITY_ICON : FULL_OPACITY_ICON);
|
||||
}
|
||||
|
||||
private void updateBorder()
|
||||
@@ -543,9 +547,10 @@ class ScreenMarkerPanel extends JPanel
|
||||
|
||||
private void openFillColorPicker()
|
||||
{
|
||||
final Color fillColor = marker.getMarker().getFill();
|
||||
RuneliteColorPicker colorPicker = plugin.getColorPickerManager().create(
|
||||
SwingUtilities.windowForComponent(this),
|
||||
marker.getMarker().getFill(),
|
||||
fillColor.getAlpha() == 0 ? ColorUtil.colorWithAlpha(fillColor, DEFAULT_FILL_OPACITY) : fillColor,
|
||||
marker.getMarker().getName() + " Fill",
|
||||
false);
|
||||
colorPicker.setLocation(getLocationOnScreen());
|
||||
|
||||
@@ -56,7 +56,7 @@ public class WidgetOverlay extends Overlay
|
||||
new WidgetOverlay(client, WidgetInfo.PEST_CONTROL_KNIGHT_INFO_CONTAINER, OverlayPosition.TOP_LEFT),
|
||||
new WidgetOverlay(client, WidgetInfo.PEST_CONTROL_ACTIVITY_SHIELD_INFO_CONTAINER, OverlayPosition.TOP_RIGHT),
|
||||
new WidgetOverlay(client, WidgetInfo.ZEAH_MESS_HALL_COOKING_DISPLAY, OverlayPosition.TOP_LEFT),
|
||||
new WidgetOverlay(client, WidgetInfo.PVP_KILLDEATH_COUNTER, OverlayPosition.TOP_LEFT),
|
||||
new PvpKDRWidgetOverlay(client, WidgetInfo.PVP_KILLDEATH_COUNTER, OverlayPosition.TOP_LEFT),
|
||||
new WidgetOverlay(client, WidgetInfo.SKOTIZO_CONTAINER, OverlayPosition.TOP_LEFT),
|
||||
new WidgetOverlay(client, WidgetInfo.KOUREND_FAVOUR_OVERLAY, OverlayPosition.TOP_CENTER),
|
||||
new WidgetOverlay(client, WidgetInfo.PYRAMID_PLUNDER_DATA, OverlayPosition.TOP_CENTER),
|
||||
@@ -257,4 +257,24 @@ public class WidgetOverlay extends Overlay
|
||||
return position;
|
||||
}
|
||||
}
|
||||
|
||||
private static class PvpKDRWidgetOverlay extends WidgetOverlay
|
||||
{
|
||||
private PvpKDRWidgetOverlay(Client client, WidgetInfo widgetInfo, OverlayPosition overlayPosition)
|
||||
{
|
||||
super(client, widgetInfo, overlayPosition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dimension render(Graphics2D graphics)
|
||||
{
|
||||
// Don't draw widget overlay if the PVP KDR stats text will be empty
|
||||
if (client.getVar(Varbits.SHOW_PVP_KDR_STATS) == 1)
|
||||
{
|
||||
return super.render(graphics);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,17 +60,17 @@ public class LinkBrowser
|
||||
return;
|
||||
}
|
||||
|
||||
if (attemptDesktopBrowse(url))
|
||||
{
|
||||
log.debug("Opened url through Desktop#browse to {}", url);
|
||||
return;
|
||||
}
|
||||
|
||||
if (shouldAttemptXdg && attemptXdgOpen(url))
|
||||
{
|
||||
log.debug("Opened url through xdg-open to {}", url);
|
||||
return;
|
||||
}
|
||||
|
||||
if (attemptDesktopBrowse(url))
|
||||
{
|
||||
log.debug("Opened url through Desktop#browse to {}", url);
|
||||
return;
|
||||
}
|
||||
|
||||
log.warn("LinkBrowser.browse() could not open {}", url);
|
||||
showMessageBox("Unable to open link. Press 'OK' and the link will be copied to your clipboard.", url);
|
||||
@@ -91,18 +91,18 @@ public class LinkBrowser
|
||||
return;
|
||||
}
|
||||
|
||||
if (shouldAttemptXdg && attemptXdgOpen(directory))
|
||||
{
|
||||
log.debug("Opened directory through xdg-open to {}", directory);
|
||||
return;
|
||||
}
|
||||
|
||||
if (attemptDesktopOpen(directory))
|
||||
{
|
||||
log.debug("Opened directory through Desktop#open to {}", directory);
|
||||
return;
|
||||
}
|
||||
|
||||
if (shouldAttemptXdg && attemptXdgOpen(directory))
|
||||
{
|
||||
log.debug("Opened directory through xdg-open to {}", directory);
|
||||
return;
|
||||
}
|
||||
|
||||
log.warn("LinkBrowser.open() could not open {}", directory);
|
||||
showMessageBox("Unable to open folder. Press 'OK' and the folder directory will be copied to your clipboard.", directory);
|
||||
}).start();
|
||||
|
||||
@@ -62,52 +62,21 @@ int priority_map(int p, int distance, int _min10, int avg1, int avg2, int avg3)
|
||||
return 17;
|
||||
}
|
||||
default:
|
||||
return -1;
|
||||
// this can't happen unless an invalid priority is sent. just assume 0.
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// calculate the number of faces with a lower adjusted priority than
|
||||
// the given adjusted priority
|
||||
int count_prio_offset(__local struct shared_data *shared, int priority) {
|
||||
// this shouldn't ever be outside of (0, 17) because it is the return value from priority_map
|
||||
priority = clamp(priority, 0, 17);
|
||||
int total = 0;
|
||||
switch (priority) {
|
||||
case 17:
|
||||
total += shared->totalMappedNum[16];
|
||||
case 16:
|
||||
total += shared->totalMappedNum[15];
|
||||
case 15:
|
||||
total += shared->totalMappedNum[14];
|
||||
case 14:
|
||||
total += shared->totalMappedNum[13];
|
||||
case 13:
|
||||
total += shared->totalMappedNum[12];
|
||||
case 12:
|
||||
total += shared->totalMappedNum[11];
|
||||
case 11:
|
||||
total += shared->totalMappedNum[10];
|
||||
case 10:
|
||||
total += shared->totalMappedNum[9];
|
||||
case 9:
|
||||
total += shared->totalMappedNum[8];
|
||||
case 8:
|
||||
total += shared->totalMappedNum[7];
|
||||
case 7:
|
||||
total += shared->totalMappedNum[6];
|
||||
case 6:
|
||||
total += shared->totalMappedNum[5];
|
||||
case 5:
|
||||
total += shared->totalMappedNum[4];
|
||||
case 4:
|
||||
total += shared->totalMappedNum[3];
|
||||
case 3:
|
||||
total += shared->totalMappedNum[2];
|
||||
case 2:
|
||||
total += shared->totalMappedNum[1];
|
||||
case 1:
|
||||
total += shared->totalMappedNum[0];
|
||||
case 0:
|
||||
return total;
|
||||
for (int i = 0; i < priority; i++) {
|
||||
total += shared->totalMappedNum[i];
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
void get_face(
|
||||
|
||||
@@ -62,52 +62,21 @@ int priority_map(int p, int distance, int _min10, int avg1, int avg2, int avg3)
|
||||
return 17;
|
||||
}
|
||||
default:
|
||||
return -1;
|
||||
// this can't happen unless an invalid priority is sent. just assume 0.
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// calculate the number of faces with a lower adjusted priority than
|
||||
// the given adjusted priority
|
||||
int count_prio_offset(int priority) {
|
||||
// this shouldn't ever be outside of (0, 17) because it is the return value from priority_map
|
||||
priority = clamp(priority, 0, 17);
|
||||
int total = 0;
|
||||
switch (priority) {
|
||||
case 17:
|
||||
total += totalMappedNum[16];
|
||||
case 16:
|
||||
total += totalMappedNum[15];
|
||||
case 15:
|
||||
total += totalMappedNum[14];
|
||||
case 14:
|
||||
total += totalMappedNum[13];
|
||||
case 13:
|
||||
total += totalMappedNum[12];
|
||||
case 12:
|
||||
total += totalMappedNum[11];
|
||||
case 11:
|
||||
total += totalMappedNum[10];
|
||||
case 10:
|
||||
total += totalMappedNum[9];
|
||||
case 9:
|
||||
total += totalMappedNum[8];
|
||||
case 8:
|
||||
total += totalMappedNum[7];
|
||||
case 7:
|
||||
total += totalMappedNum[6];
|
||||
case 6:
|
||||
total += totalMappedNum[5];
|
||||
case 5:
|
||||
total += totalMappedNum[4];
|
||||
case 4:
|
||||
total += totalMappedNum[3];
|
||||
case 3:
|
||||
total += totalMappedNum[2];
|
||||
case 2:
|
||||
total += totalMappedNum[1];
|
||||
case 1:
|
||||
total += totalMappedNum[0];
|
||||
case 0:
|
||||
return total;
|
||||
for (int i = 0; i < priority; i++) {
|
||||
total += totalMappedNum[i];
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
void get_face(uint localId, modelinfo minfo, int cameraYaw, int cameraPitch,
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 243 B |
Binary file not shown.
|
Before Width: | Height: | Size: 257 B |
@@ -8,7 +8,7 @@ runelite.wiki.link=https://github.com/open-osrs/runelite/wiki
|
||||
runelite.patreon.link=https://www.patreon.com/openosrs
|
||||
runelite.wiki.troubleshooting.link=https://github.com/open-osrs/runelite/wiki/Troubleshooting-problems-with-the-client
|
||||
runelite.wiki.building.link=https://github.com/open-osrs/runelite/wiki/Building-with-IntelliJ-IDEA#client-failing-to-start
|
||||
runelite.dnschange.link=https://1.1.1.1/dns/
|
||||
runelite.dnschange.link=https://1.1.1.1/dns/#setup-instructions
|
||||
runelite.jav_config=https://oldschool.runescape.com/jav_config.ws
|
||||
runelite.jav_config_backup=https://static.runelite.net/jav_config.ws
|
||||
runelite.pluginhub.url=https://repo.runelite.net/plugins
|
||||
|
||||
Reference in New Issue
Block a user