diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSGameObjectMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSGameObjectMixin.java index 320682dc7d..ff35b491ba 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSGameObjectMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSGameObjectMixin.java @@ -121,7 +121,7 @@ public abstract class RSGameObjectMixin implements RSGameObject public Angle getOrientation() { int orientation = getModelOrientation(); - int rotation = (getFlags() >> 6) & 3; + int rotation = (getConfig() >> 6) & 3; return new Angle(rotation * 512 + orientation); } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSNPCCompositionMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSNPCCompositionMixin.java index 264f0a5b4f..69c6a04bd2 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSNPCCompositionMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSNPCCompositionMixin.java @@ -1,10 +1,6 @@ package net.runelite.mixins; import net.runelite.api.HeadIcon; -import static net.runelite.api.HeadIcon.MAGIC; -import static net.runelite.api.HeadIcon.MELEE; -import static net.runelite.api.HeadIcon.RANGED; -import static net.runelite.api.HeadIcon.RANGE_MAGE; import net.runelite.api.events.NpcActionChanged; import net.runelite.api.mixins.FieldHook; import net.runelite.api.mixins.Inject; @@ -26,13 +22,35 @@ public abstract class RSNPCCompositionMixin implements RSNPCComposition switch (getRsOverheadIcon()) { case 0: - return MELEE; + return HeadIcon.MELEE; case 1: - return RANGED; + return HeadIcon.RANGED; case 2: - return MAGIC; + return HeadIcon.MAGIC; + case 3: + return HeadIcon.RETRIBUTION; + case 4: + return HeadIcon.SMITE; + case 5: + return HeadIcon.REDEMPTION; case 6: - return RANGE_MAGE; + return HeadIcon.RANGE_MAGE; + case 7: + return HeadIcon.RANGE_MELEE; + case 8: + return HeadIcon.MAGE_MELEE; + case 9: + return HeadIcon.RANGE_MAGE_MELEE; + case 10: + return HeadIcon.WRATH; + case 11: + return HeadIcon.SOUL_SPLIT; + case 12: + return HeadIcon.DEFLECT_MELEE; + case 13: + return HeadIcon.DEFLECT_RANGE; + case 14: + return HeadIcon.DEFLECT_MAGE; default: return null; } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSPlayerMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSPlayerMixin.java index 661f076b0c..982650c026 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSPlayerMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSPlayerMixin.java @@ -31,7 +31,13 @@ import net.runelite.api.HeadIcon; import net.runelite.api.Model; import net.runelite.api.Perspective; import net.runelite.api.SkullIcon; -import static net.runelite.api.SkullIcon.*; +import static net.runelite.api.SkullIcon.DEAD_MAN_FIVE; +import static net.runelite.api.SkullIcon.DEAD_MAN_FOUR; +import static net.runelite.api.SkullIcon.DEAD_MAN_ONE; +import static net.runelite.api.SkullIcon.DEAD_MAN_THREE; +import static net.runelite.api.SkullIcon.DEAD_MAN_TWO; +import static net.runelite.api.SkullIcon.SKULL; +import static net.runelite.api.SkullIcon.SKULL_FIGHT_PIT; import net.runelite.api.coords.LocalPoint; import net.runelite.api.events.OverheadPrayerChanged; import net.runelite.api.events.PlayerChanged; @@ -129,12 +135,41 @@ public abstract class RSPlayerMixin implements RSPlayer @Inject private HeadIcon getHeadIcon(int overheadIcon) { - if (overheadIcon == -1) + switch (overheadIcon) { - return null; + case 0: + return HeadIcon.MELEE; + case 1: + return HeadIcon.RANGED; + case 2: + return HeadIcon.MAGIC; + case 3: + return HeadIcon.RETRIBUTION; + case 4: + return HeadIcon.SMITE; + case 5: + return HeadIcon.REDEMPTION; + case 6: + return HeadIcon.RANGE_MAGE; + case 7: + return HeadIcon.RANGE_MELEE; + case 8: + return HeadIcon.MAGE_MELEE; + case 9: + return HeadIcon.RANGE_MAGE_MELEE; + case 10: + return HeadIcon.WRATH; + case 11: + return HeadIcon.SOUL_SPLIT; + case 12: + return HeadIcon.DEFLECT_MELEE; + case 13: + return HeadIcon.DEFLECT_RANGE; + case 14: + return HeadIcon.DEFLECT_MAGE; + default: + return null; } - - return HeadIcon.values()[overheadIcon]; } @Inject @@ -269,7 +304,7 @@ public abstract class RSPlayerMixin implements RSPlayer { client.getCallbacks().post(new PlayerChanged(this)); } - + @Copy("read") @Replace("read") @SuppressWarnings("InfiniteRecursion") diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSFloorDecoration.java b/runescape-api/src/main/java/net/runelite/rs/api/RSFloorDecoration.java index 30e5380b5f..59de7fa351 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSFloorDecoration.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSFloorDecoration.java @@ -20,4 +20,8 @@ public interface RSFloorDecoration extends GroundObject RSRenderable getRenderable(); void setPlane(int plane); + + @Import("flags") + @Override + int getConfig(); } diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSGameObject.java b/runescape-api/src/main/java/net/runelite/rs/api/RSGameObject.java index 616eabb9be..b2e9c19475 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSGameObject.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSGameObject.java @@ -39,7 +39,8 @@ public interface RSGameObject extends GameObject long getHash(); @Import("flags") - int getFlags(); + @Override + int getConfig(); int getPlane(); diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSScriptEvent.java b/runescape-api/src/main/java/net/runelite/rs/api/RSScriptEvent.java index 7c2dfc8e00..929256f9e3 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSScriptEvent.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSScriptEvent.java @@ -55,6 +55,9 @@ public interface RSScriptEvent extends ScriptEvent @Import("mouseX") int getMouseX(); + @Import("mouseY") + int getMouseY(); + @Import("keyTyped") // shit name int getTypedKeyCode(); diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSWallDecoration.java b/runescape-api/src/main/java/net/runelite/rs/api/RSWallDecoration.java index bfceac72a4..fabfc5e608 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSWallDecoration.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSWallDecoration.java @@ -33,4 +33,8 @@ public interface RSWallDecoration extends DecorativeObject RSRenderable getRenderable2(); void setPlane(int plane); + + @Import("flags") + @Override + int getConfig(); }