Merge pull request #2630 from open-osrs/upstream

client: merge upstream
This commit is contained in:
Tyler Bochard
2020-05-28 03:01:33 -04:00
committed by GitHub
5 changed files with 46 additions and 7 deletions

View File

@@ -49,10 +49,14 @@ import org.slf4j.Logger;
public interface Client extends GameShell public interface Client extends GameShell
{ {
/** /**
* The client invokes these callbacks to communicate to * The injected client invokes these callbacks to send events to us
*/ */
Callbacks getCallbacks(); Callbacks getCallbacks();
/**
* The injected client invokes these callbacks for scene drawing, which is
* used by the gpu plugin to override the client's normal scene drawing code
*/
DrawCallbacks getDrawCallbacks(); DrawCallbacks getDrawCallbacks();
void setDrawCallbacks(DrawCallbacks drawCallbacks); void setDrawCallbacks(DrawCallbacks drawCallbacks);
@@ -2019,4 +2023,16 @@ public interface Client extends GameShell
* Sets the status of client mirror * Sets the status of client mirror
*/ */
void setMirrored(boolean isMirrored); void setMirrored(boolean isMirrored);
/**
* Sets the image to be used for the login screen, provided as SpritePixels
* If the image is larger than half the width of fixed mode,
* it won't get mirrored to the other side of the screen
*/
void setLoginScreen(Sprite pixels);
/**
* Sets whether the flames on the login screen should be rendered
*/
void setShouldRenderLoginScreenFire(boolean val);
} }

View File

@@ -279,6 +279,11 @@ public enum MenuOpcode
* Menu action for configuring runelite overlays. * Menu action for configuring runelite overlays.
*/ */
RUNELITE_OVERLAY_CONFIG(1502), RUNELITE_OVERLAY_CONFIG(1502),
/**
* Menu action injected by runelite for menu items which target
* a player and have its identifier set to a player index.
*/
RUNELITE_PLAYER(1503),
FOLLOW(2046), FOLLOW(2046),
TRADE(2047), TRADE(2047),

View File

@@ -61,6 +61,15 @@ public enum VarPlayer
*/ */
AUTO_RETALIATE(172), AUTO_RETALIATE(172),
/**
* The ID of the party. This Var is only set in the raid bank area and the raid lobby
*
* This gets set to -1 when the raid starts. This is first set when the first player of the clan forms a party
* on the recruiting board and it changes again when the first person actually enters the raid.
*
* -1 : Not in a party or in the middle of an ongoing raid
* Anything else : This means that your clan has a raid party being formed and has not started yet
*/
IN_RAID_PARTY(1427), IN_RAID_PARTY(1427),
NMZ_REWARD_POINTS(1060), NMZ_REWARD_POINTS(1060),

View File

@@ -448,9 +448,10 @@ public class MenuManager
} }
} }
if (event.getMenuOpcode() != MenuOpcode.RUNELITE) if (event.getMenuOpcode() != MenuOpcode.RUNELITE
&& event.getMenuOpcode() != MenuOpcode.RUNELITE_PLAYER)
{ {
return; // not a player menu return; // not a managed widget option or custom player option
} }
int widgetId = event.getParam1(); int widgetId = event.getParam1();
@@ -459,7 +460,7 @@ public class MenuManager
for (WidgetMenuOption curMenuOption : options) for (WidgetMenuOption curMenuOption : options)
{ {
if (curMenuOption.getMenuTarget().equals(event.getTarget()) if (curMenuOption.getMenuTarget().equals(event.getTarget())
&& curMenuOption.getMenuOption().equals(event.getOption())) && curMenuOption.getMenuOption().equals(event.getMenuOpcode()))
{ {
WidgetMenuOptionClicked customMenu = new WidgetMenuOptionClicked(); WidgetMenuOptionClicked customMenu = new WidgetMenuOptionClicked();
customMenu.setMenuOption(event.getOption()); customMenu.setMenuOption(event.getOption());
@@ -483,7 +484,7 @@ public class MenuManager
{ {
client.getPlayerOptions()[playerOptionIndex] = menuText; client.getPlayerOptions()[playerOptionIndex] = menuText;
client.getPlayerOptionsPriorities()[playerOptionIndex] = true; client.getPlayerOptionsPriorities()[playerOptionIndex] = true;
client.getPlayerMenuTypes()[playerOptionIndex] = MenuOpcode.RUNELITE.getId(); client.getPlayerMenuTypes()[playerOptionIndex] = MenuOpcode.RUNELITE_PLAYER.getId();
playerMenuIndexMap.put(playerOptionIndex, menuText); playerMenuIndexMap.put(playerOptionIndex, menuText);
} }

View File

@@ -70,8 +70,16 @@ public class InfoBoxManager
log.debug("Adding InfoBox {}", infoBox); log.debug("Adding InfoBox {}", infoBox);
updateInfoBoxImage(infoBox); updateInfoBoxImage(infoBox);
infoBoxes.add(infoBox);
refreshInfoBoxes(); synchronized (this)
{
int idx = Collections.binarySearch(infoBoxes, infoBox, (b1, b2) -> ComparisonChain
.start()
.compare(b1.getPriority(), b2.getPriority())
.compare(b1.getPlugin().getName(), b2.getPlugin().getName())
.result());
infoBoxes.add(idx < 0 ? -idx - 1 : idx, infoBox);
}
BufferedImage image = infoBox.getImage(); BufferedImage image = infoBox.getImage();