Merge remote-tracking branch 'runelite/master'

This commit is contained in:
Owain van Brakel
2021-11-11 16:51:56 +01:00
5 changed files with 39 additions and 47 deletions

View File

@@ -477,6 +477,32 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener
Widget bankTitle = client.getWidget(WidgetInfo.BANK_TITLE_BAR);
bankTitle.setText("Tag tab <col=ff0000>" + activeTab.getTag() + "</col>");
}
// Recompute scroll size. Only required for tag tab tab and with remove separators, to remove the
// space that the separators took.
if (tabInterface.isTagTabActive() || (tabInterface.isActive() && config.removeSeparators()))
{
Widget itemContainer = client.getWidget(WidgetInfo.BANK_ITEM_CONTAINER);
Widget[] children = itemContainer.getChildren();
int items = 0;
for (Widget child : children)
{
if (child != null && child.getItemId() != -1 && !child.isHidden())
{
++items;
}
}
// New scroll height for if_setscrollsize
final int adjustedScrollHeight = (Math.max(0, items - 1) / ITEMS_PER_ROW) * ITEM_VERTICAL_SPACING +
ITEM_VERTICAL_SPACING + ITEM_CONTAINER_BOTTOM_PADDING;
// This is prior to bankmain_finishbuilding running, so the arguments are still on the stack. Overwrite
// argument int12 (7 from the end) which is the height passed to if_setscrollsize
final int[] intStack = client.getIntStack();
final int intStackSize = client.getIntStackSize();
intStack[intStackSize - 7] = adjustedScrollHeight;
}
}
else if (scriptId == ScriptID.BANKMAIN_SEARCH_TOGGLE)
{
@@ -510,15 +536,6 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener
return;
}
if (tabInterface.isTagTabActive())
{
int numTabs = (int) Arrays.stream(itemContainer.getDynamicChildren())
.filter(child -> child.getItemId() != -1 && !child.isHidden())
.count();
updateBankContainerScrollHeight(numTabs);
return;
}
if (!tabInterface.isActive() || !config.removeSeparators())
{
return;
@@ -540,14 +557,9 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener
int adjYOffset = (items / ITEMS_PER_ROW) * ITEM_VERTICAL_SPACING;
int adjXOffset = (items % ITEMS_PER_ROW) * ITEM_HORIZONTAL_SPACING + ITEM_ROW_START;
if (child.getOriginalY() != adjYOffset)
if (child.getOriginalY() != adjYOffset || child.getOriginalX() != adjXOffset)
{
child.setOriginalY(adjYOffset);
child.revalidate();
}
if (child.getOriginalX() != adjXOffset)
{
child.setOriginalX(adjXOffset);
child.revalidate();
}
@@ -562,23 +574,6 @@ public class BankTagsPlugin extends Plugin implements MouseWheelListener
child.setHidden(true);
}
}
updateBankContainerScrollHeight(items);
}
private void updateBankContainerScrollHeight(int items)
{
Widget bankItemContainer = client.getWidget(WidgetInfo.BANK_ITEM_CONTAINER);
int itemContainerHeight = bankItemContainer.getHeight();
final int adjustedScrollHeight = (Math.max(0, items - 1) / ITEMS_PER_ROW) * ITEM_VERTICAL_SPACING + ITEM_VERTICAL_SPACING + ITEM_CONTAINER_BOTTOM_PADDING;
bankItemContainer.setScrollHeight(Math.max(adjustedScrollHeight, itemContainerHeight));
final int itemContainerScroll = bankItemContainer.getScrollY();
clientThread.invokeLater(() ->
client.runScript(ScriptID.UPDATE_SCROLLBAR,
WidgetInfo.BANK_SCROLLBAR.getId(),
WidgetInfo.BANK_ITEM_CONTAINER.getId(),
itemContainerScroll));
}
@Subscribe

View File

@@ -316,7 +316,7 @@ public class TabInterface
return;
}
chatboxPanelManager.openTextInput((inventory ? "Inventory " : "Equipment ") + " tags:")
chatboxPanelManager.openTextInput((inventory ? "Inventory" : "Equipment") + " tags:")
.addCharValidator(FILTERED_CHARS)
.onDone((Consumer<String>) (newTags) ->
clientThread.invoke(() ->
@@ -573,7 +573,7 @@ public class TabInterface
switch (eventName)
{
case "setBankScroll":
case "skipBankLayout":
if (!isTabMenuActive())
{
setTabMenuVisible(false);
@@ -582,11 +582,8 @@ public class TabInterface
setTabMenuVisible(true);
// scroll height
intStack[intStackSize - 3] = (((tabManager.getTabs().size() - 1) / BANK_ITEMS_PER_ROW) + 1) * (BANK_ITEM_HEIGHT + BANK_ITEM_Y_PADDING);
// skip normal bank layout
intStack[intStackSize - 2] = 1;
intStack[intStackSize - 1] = 1;
break;
case "beforeBankLayout":
setTabMenuVisible(false);

View File

@@ -78,6 +78,7 @@ public class GroundItemsOverlay extends Overlay
private static final Duration DESPAWN_TIME_DROP = Duration.ofMinutes(3);
private static final Duration DESPAWN_TIME_TABLE = Duration.ofMinutes(10);
private static final int KRAKEN_REGION = 9116;
private static final int CLAN_HALL_REGION = 6997;
private static final int KBD_NMZ_REGION = 9033;
private static final int ZILYANA_REGION = 11602;
private static final int GRAARDOR_REGION = 11347;
@@ -456,7 +457,8 @@ public class GroundItemsOverlay extends Overlay
}
else if (playerRegionID == ZILYANA_REGION || playerRegionID == GRAARDOR_REGION ||
playerRegionID == KRIL_TSUTSAROTH_REGION || playerRegionID == KREEARRA_REGION ||
playerRegionID == NIGHTMARE_REGION || playerRegionID == TEMPOROSS_REGION)
playerRegionID == NIGHTMARE_REGION || playerRegionID == TEMPOROSS_REGION ||
playerRegionID == CLAN_HALL_REGION)
{
// GWD, Nightmare, and Tempoross instances use the normal despawn timers
despawnTime = spawnTime.plus(groundItem.getLootType() == LootType.DROPPED

View File

@@ -1,4 +1,4 @@
.id 279
.id 279 ; [proc,bankmain_filteritem]
.int_stack_count 1
.string_stack_count 0
.int_var_count 2 ; +1 for storage of search filter result

View File

@@ -1,4 +1,4 @@
.id 277
.id 277 ; [proc,bankmain_build]
.int_stack_count 17
.string_stack_count 0
.int_var_count 36
@@ -7,8 +7,8 @@
; Fired before the bank starts its layout
; Used by the TabInterface to hide fake bank items for tag tabs
;
; callback "setBankScroll"
; Fired before bank is calculated
; callback "skipBankLayout"
; Fired before bank is built
; Used by the TabInterface to show fake bank items for tag tabs
sconst "beforeBankLayout"
runelite_callback
@@ -403,13 +403,11 @@ LABEL348:
sub
istore 30
LABEL352:
iconst 0 ; Scroll height variable
iconst 0 ; Compare variable
iconst 0 ;
sconst "setBankScroll" ; Show fake bank items for tag tabs
sconst "skipBankLayout" ; Show fake bank items for tag tabs
runelite_callback ; If tag tab menu search isn't active
if_icmpeq CONTINUE_SEARCH ; continue to normal bank search
istore 27 ; Load scroll height into variable
jump GetTabRange ; Skip normal bank layout
CONTINUE_SEARCH:
iload 31
@@ -842,7 +840,7 @@ LABEL729:
iload 14
iload 15
iload 16
invoke 505
invoke 505 ; [proc,bankmain_finishbuilding]
return
LABEL750:
invoke 514