Skip to content

Commit

Permalink
clues: include alternatives in treasure chest tag
Browse files Browse the repository at this point in the history
  • Loading branch information
Adam- committed Dec 23, 2023
1 parent b7d8834 commit 788a5d5
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 19 deletions.
14 changes: 8 additions & 6 deletions runelite-api/src/main/java/net/runelite/api/EnumID.java
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,14 @@ public final class EnumID
*/
public static final int PETS = 2158;
public static final int POH_COSTUME_MEMBERS = 3077;
public static final int POH_COSTUMES_CLUE_BEGINNER = 3293;
public static final int POH_COSTUMES_CLUE_EASY = 3294;
public static final int POH_COSTUMES_CLUE_MEDIUM = 3295;
public static final int POH_COSTUMES_CLUE_HARD = 3296;
public static final int POH_COSTUMES_CLUE_ELITE = 3297;
public static final int POH_COSTUMES_CLUE_MASTER = 3298;
public static final int POH_COSTUME_CLUE_BEGINNER = 3293;
public static final int POH_COSTUME_CLUE_EASY = 3294;
public static final int POH_COSTUME_CLUE_MEDIUM = 3295;
public static final int POH_COSTUME_CLUE_HARD = 3296;
public static final int POH_COSTUME_CLUE_ELITE = 3297;
public static final int POH_COSTUME_CLUE_MASTER = 3298;
public static final int POH_COSTUME_ALTERNATE = 3303;
public static final int POH_COSTUME_ALTERNATES = 3304;
public static final int CLAN_RANK_NAME = 3797;
public static final int CLAN_RANK_GRAPHIC = 3798;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1207,17 +1207,20 @@ else if (c instanceof SkillChallengeClue)
return false;
}

// from [proc,poh_costumes_countmembers] and [proc,poh_costumes_countalternates]
private boolean testTreasureChestTag(int itemId)
{
EnumComposition members = client.getEnum(EnumID.POH_COSTUME_MEMBERS);
EnumComposition[] enums = {
client.getEnum(EnumID.POH_COSTUMES_CLUE_BEGINNER),
client.getEnum(EnumID.POH_COSTUMES_CLUE_EASY),
client.getEnum(EnumID.POH_COSTUMES_CLUE_MEDIUM),
client.getEnum(EnumID.POH_COSTUMES_CLUE_HARD),
client.getEnum(EnumID.POH_COSTUMES_CLUE_ELITE),
client.getEnum(EnumID.POH_COSTUMES_CLUE_MASTER)
client.getEnum(EnumID.POH_COSTUME_CLUE_BEGINNER),
client.getEnum(EnumID.POH_COSTUME_CLUE_EASY),
client.getEnum(EnumID.POH_COSTUME_CLUE_MEDIUM),
client.getEnum(EnumID.POH_COSTUME_CLUE_HARD),
client.getEnum(EnumID.POH_COSTUME_CLUE_ELITE),
client.getEnum(EnumID.POH_COSTUME_CLUE_MASTER)
};
EnumComposition alt = client.getEnum(EnumID.POH_COSTUME_ALTERNATE);
EnumComposition alts = client.getEnum(EnumID.POH_COSTUME_ALTERNATES);
for (var tierEnum : enums)
{
for (int baseItem : tierEnum.getIntVals())
Expand All @@ -1228,16 +1231,27 @@ private boolean testTreasureChestTag(int itemId)
}

int membersEnumId = members.getIntValue(baseItem);
if (membersEnumId == -1)
if (membersEnumId != -1)
{
continue;
}
// check members in the group
var memberEnum = client.getEnum(membersEnumId);
for (int memberItem : memberEnum.getIntVals())
{
if (memberItem == itemId)
{
return true;
}

// check members in the group
var memberEnum = client.getEnum(membersEnumId);
for (int memberItem : memberEnum.getIntVals())
if (checkAlternates(alt, alts, itemId, memberItem))
{
return true;
}
}
}
else
{
if (memberItem == itemId)
// single member group
if (checkAlternates(alt, alts, itemId, baseItem))
{
return true;
}
Expand All @@ -1247,6 +1261,29 @@ private boolean testTreasureChestTag(int itemId)
return false;
}

private boolean checkAlternates(EnumComposition alt, EnumComposition alts, int targetItemId, int checkItemId)
{
if (alt.getIntValue(checkItemId) == targetItemId)
{
return true;
}

int altsEnumId = alts.getIntValue(checkItemId);
if (altsEnumId != -1)
{
var e = client.getEnum(altsEnumId);
for (int item : e.getIntVals())
{
if (item == targetItemId)
{
return true;
}
}
}

return false;
}

private void updateOverlayMenuEntries()
{
clueScrollOverlay.removeMenuEntry(RUNELITE_OVERLAY, "Set note", "Clue Scroll overlay");
Expand Down

0 comments on commit 788a5d5

Please sign in to comment.