diff --git a/runelite-client/src/main/resources/scripts/MagicSpellBookRedraw.hash b/runelite-client/src/main/resources/scripts/MagicSpellBookRedraw.hash new file mode 100644 index 0000000000..9560cbccda --- /dev/null +++ b/runelite-client/src/main/resources/scripts/MagicSpellBookRedraw.hash @@ -0,0 +1 @@ +F4729C2DE16BB31A779316E5D5080A9B5E6871C752BB4534863E0790D5F35154 \ No newline at end of file diff --git a/runelite-client/src/main/resources/scripts/MagicSpellBookRedraw.rs2asm b/runelite-client/src/main/resources/scripts/MagicSpellBookRedraw.rs2asm new file mode 100644 index 0000000000..45bf0691bf --- /dev/null +++ b/runelite-client/src/main/resources/scripts/MagicSpellBookRedraw.rs2asm @@ -0,0 +1,870 @@ +.id 2611 +.int_stack_count 11 +.string_stack_count 2 +.int_var_count 30 +.string_var_count 2 + sconst "startSpellRedraw" + runelite_callback + iconst 190 + istore 11 + iconst 261 + istore 12 + iconst 0 + istore 13 + iload 10 + iconst 1 + if_icmpeq LABEL10 + jump LABEL76 +LABEL10: + iconst 6 + iconst 240 + iconst 1 + iconst 0 + iload 3 + if_setsize + iconst 190 + iconst 6 + sub + iconst 240 + istore 12 + istore 11 + iconst 0 + iconst 0 + iconst 1 + iconst 0 + iload 3 + if_setposition + iconst 0 + iload 4 + if_sethide + sload 0 + iconst 190 + iconst 494 + parawidth + sload 1 + iconst 190 + iconst 494 + parawidth + invoke 1045 + iconst 14 + add + istore 13 + iload 13 + iconst 0 + iconst 0 + iconst 1 + iload 5 + if_setsize + iload 13 + iconst 0 + iconst 0 + iconst 1 + iload 6 + if_setsize + iconst 190 + iload 13 + iconst 2 + multiply + sub + iconst 3 + div + istore 13 + iload 13 + iconst 0 + iconst 0 + iconst 1 + iload 5 + if_setposition + iload 13 + iconst 0 + iconst 2 + iconst 1 + iload 6 + if_setposition + jump LABEL147 +LABEL76: + get_varbit 6718 + iconst 1 + if_icmpeq LABEL80 + jump LABEL109 +LABEL80: + iconst 0 + iconst 0 + iconst 1 + iconst 1 + iload 3 + if_setsize + iconst 0 + iconst 0 + iconst 1 + iconst 1 + iload 3 + if_setposition + iconst 1 + iload 4 + if_sethide + iconst -1 + iload 10 + iload 5 + iload 6 + iload 0 + iload 1 + iload 7 + iload 8 + iload 9 + iload 2 + sload 0 + sload 1 + invoke 2603 + jump LABEL147 +LABEL109: + iconst 6 + iconst 240 + iconst 1 + iconst 0 + iload 3 + if_setsize + iconst 190 + iconst 6 + sub + iconst 240 + istore 12 + istore 11 + iconst 0 + iconst 0 + iconst 1 + iconst 0 + iload 3 + if_setposition + iconst 0 + iload 4 + if_sethide + sload 1 + iconst 190 + iconst 494 + parawidth + iconst 14 + add + iconst 0 + iconst 0 + iconst 1 + iload 6 + if_setsize + iconst 0 + iconst 0 + iconst 1 + iconst 1 + iload 6 + if_setposition +LABEL147: + iload 0 + cc_deleteall + iload 1 + cc_deleteall + iload 2 + cc_deleteall + iconst 105 + iconst 103 + iconst 1981 + get_varbit 4070 + enum + istore 14 + iload 14 + iconst 1982 + if_icmpne LABEL163 + jump LABEL165 +LABEL163: + iconst 1982 + invoke 2618 +LABEL165: + iload 14 + iconst 1983 + if_icmpne LABEL169 + jump LABEL171 +LABEL169: + iconst 1983 + invoke 2618 +LABEL171: + iload 14 + iconst 1984 + if_icmpne LABEL175 + jump LABEL177 +LABEL175: + iconst 1984 + invoke 2618 +LABEL177: + iload 14 + iconst 1985 + if_icmpne LABEL181 + jump LABEL183 +LABEL181: + iconst 1985 + invoke 2618 +LABEL183: + iload 14 + iconst -1 + if_icmpeq LABEL187 + jump LABEL188 +LABEL187: + return +LABEL188: + iload 14 + enum_getoutputcount + istore 15 + iload 15 + define_array 105 + iconst 0 + istore 16 + iconst -1 + istore 17 + iconst 0 + istore 18 + iload 10 + iconst 0 + if_icmpeq LABEL203 + jump LABEL242 +LABEL203: + get_varbit 6718 + iconst 1 + if_icmpeq LABEL207 + jump LABEL242 +LABEL207: + iload 18 + iload 15 + if_icmplt LABEL211 + jump LABEL241 +LABEL211: + iconst 105 + iconst 111 + iload 14 + iload 18 + enum + istore 17 + invoke 3160 + iconst 1 + if_icmpeq LABEL221 + jump LABEL224 +LABEL221: + iload 17 + invoke 3159 + istore 17 +LABEL224: + iconst 0 + iload 17 + iconst 596 + oc_param + if_sethide + iload 16 + iload 18 + set_array_int + iload 16 + iconst 1 + add + istore 16 + iload 18 + iconst 1 + add + istore 18 + jump LABEL207 +LABEL241: + jump LABEL287 +LABEL242: + iload 18 + iload 15 + if_icmplt LABEL246 + jump LABEL287 +LABEL246: + iconst 105 + iconst 111 + iload 14 + iload 18 + enum + istore 17 + invoke 3160 + iconst 1 + if_icmpeq LABEL256 + jump LABEL259 +LABEL256: + iload 17 + invoke 3159 + istore 17 +LABEL259: + iload 17 + invoke 2619 + iconst 1 + if_icmpeq FILTER_SPELL + jump LABEL277 +FILTER_SPELL: + iconst 1 ; boolean the callback modifies + iload 17 + iconst 596 ; widgetID, to populate config + oc_param + iload 17 + iconst 601 ; spell_name + oc_param ; look up from object composition + sconst "shouldFilterSpell" + runelite_callback + pop_string ; pop the name + pop_int ; and the widgetID + iconst 1 ; default true, so the script still functions without plugin on + if_icmpeq LABEL264 + jump LABEL277 +LABEL264: + iconst 0 + iload 17 + iconst 596 + oc_param + if_sethide + iload 16 + iload 18 + set_array_int + iload 16 + iconst 1 + add + istore 16 + jump LABEL282 +LABEL277: + iconst 1 + iload 17 + iconst 596 + oc_param + if_sethide +LABEL282: + iload 18 + iconst 1 + add + istore 18 + jump LABEL242 +LABEL287: + iload 16 + iconst 2 + if_icmpge LABEL291 + jump LABEL299 +LABEL291: + iconst 0 + iconst 0 + iload 16 + iconst 1 + sub + iload 14 + invoke 2621 + jump LABEL330 +LABEL299: + iload 16 + iconst 0 + if_icmple LABEL303 + jump LABEL330 +LABEL303: + iload 0 + iconst 4 + iconst 0 + cc_create + iconst 0 + iconst 0 + iconst 1 + iconst 1 + cc_setsize + iconst 0 + iconst 0 + iconst 1 + iconst 1 + cc_setposition + iconst 16750623 + cc_setcolour + iconst 495 + cc_settextfont + iconst 1 + cc_settextshadow + iconst 1 + iconst 1 + iconst 0 + cc_settextalign + sconst "No spells match your selected filters." + cc_settext + return +LABEL330: + iconst 24 + istore 19 + iconst 0 + istore 20 + iconst 0 + istore 21 + iconst 0 + istore 22 + iconst 0 + istore 23 + iload 12 + istore 24 + iconst 0 + sconst "isMobileSpellbookEnabled" + runelite_callback + iconst 1 + if_icmpeq LABEL346 + jump LABEL436 +LABEL346: + iload 16 + iconst 15 + if_icmple LABEL350 + jump LABEL355 +LABEL350: + iconst 40 + iconst 3 + sconst "resizeSpell" + runelite_callback + istore 20 + istore 19 + jump LABEL374 +LABEL355: + iload 16 + iconst 20 + if_icmple LABEL359 + jump LABEL364 +LABEL359: + iconst 40 + iconst 4 + istore 20 + istore 19 + jump LABEL374 +LABEL364: + iconst 4 + iconst 7 + iload 16 + iconst 8 + add + iconst 9 + div + invoke 1046 + invoke 1045 + istore 20 +LABEL374: + iconst 0 + iconst 5 + iconst 7 + iload 19 + scale + iload 11 + iload 19 + iload 20 + multiply + sub + iload 20 + iconst 1 + sub + div + invoke 1046 + invoke 1045 + istore 23 + iconst 1 + iload 16 + iload 20 + iconst 1 + sub + add + iload 20 + div + invoke 1045 + istore 21 + iload 21 + iconst 2 + if_icmpge LABEL405 + jump LABEL419 +LABEL405: + iconst 0 + iload 23 + iload 12 + iload 19 + iload 21 + multiply + sub + iload 21 + iconst 1 + sub + div + invoke 1046 + invoke 1045 + istore 22 +LABEL419: + iload 21 + iload 19 + multiply + iload 21 + iconst 1 + sub + iload 22 + multiply + add + istore 24 + iconst 0 + iconst 0 + iconst 1 + iconst 1 + iload 0 + if_setposition + jump LABEL591 +LABEL436: + get_varbit 6718 + iconst 1 + if_icmpeq LABEL440 + jump LABEL512 +LABEL440: + get_varbit 4070 + switch + 1: LABEL457 + 2: LABEL472 + 3: LABEL487 + iconst 7 + iconst 10 + iconst 0 + iconst 0 + istore 22 + istore 23 + istore 21 + istore 20 + iconst 1 + iconst 15 + iconst 1 + iconst 0 + iload 0 + if_setposition + jump LABEL501 +LABEL457: + iconst 4 + iconst 7 + iconst 20 + iconst 4 + istore 22 + istore 23 + istore 21 + istore 20 + iconst 2 + iconst 8 + iconst 1 + iconst 0 + iload 0 + if_setposition + jump LABEL501 +LABEL472: + iconst 6 + iconst 8 + iconst 6 + iconst 5 + istore 22 + istore 23 + istore 21 + istore 20 + iconst 0 + iconst 8 + iconst 1 + iconst 0 + iload 0 + if_setposition + jump LABEL501 +LABEL487: + iconst 4 + iconst 9 + iconst 21 + iconst 5 + istore 22 + istore 23 + istore 21 + istore 20 + iconst 0 + iconst 3 + iconst 1 + iconst 0 + iload 0 + if_setposition +LABEL501: + iload 21 + iload 19 + multiply + iload 21 + iconst 1 + sub + iload 22 + multiply + add + istore 24 + jump LABEL591 +LABEL512: + iload 16 + iconst 28 + if_icmple LABEL516 + jump LABEL519 +LABEL516: + iconst 4 + istore 20 + jump LABEL529 +LABEL519: + iconst 4 + iconst 7 + iload 16 + iconst 8 + add + iconst 9 + div + invoke 1046 + invoke 1045 + istore 20 +LABEL529: + iconst 0 + iload 19 + iload 11 + iload 19 + iload 20 + multiply + sub + iload 20 + iconst 1 + sub + div + invoke 1046 + invoke 1045 + istore 23 + iconst 1 + iload 16 + iload 20 + iconst 1 + sub + add + iload 20 + div + invoke 1045 + istore 21 + iload 21 + iconst 2 + if_icmpge LABEL557 + jump LABEL571 +LABEL557: + iconst 0 + iload 23 + iload 12 + iload 19 + iload 21 + multiply + sub + iload 21 + iconst 1 + sub + div + invoke 1046 + invoke 1045 + istore 22 +LABEL571: + iload 21 + iload 19 + multiply + iload 21 + iconst 1 + sub + iload 22 + multiply + add + iload 12 + iconst 30 + sub + invoke 1045 + istore 24 + iconst 0 + iconst 0 + iconst 1 + iconst 1 + iload 0 + if_setposition +LABEL591: + iload 20 + iload 19 + multiply + iload 20 + iconst 1 + sub + iload 23 + multiply + add ; start of the label until here calcs total width + iload 24 ; total height + sconst "setSpellAreaSize" + runelite_callback + iconst 0 + iconst 0 + iload 0 + if_setsize + iconst -1 + istore 25 + iload 19 + iload 23 + add + istore 26 + iload 19 + iload 22 + add + istore 27 + iconst 0 + istore 28 + iconst 0 + istore 29 + iconst 0 + istore 18 +LABEL621: + iload 18 + iload 16 + if_icmplt LABEL625 + jump LABEL762 +LABEL625: + iconst 105 + iconst 111 + iload 14 + iload 18 + get_array_int + enum + istore 17 + invoke 3160 + iconst 1 + if_icmpeq LABEL636 + jump LABEL639 +LABEL636: + iload 17 + invoke 3159 + istore 17 +LABEL639: + iload 17 + iconst 596 + oc_param + istore 25 + iload 19 + iload 19 + iload 25 + sconst "resizeIndividualSpells" + runelite_callback + pop_int + iconst 0 + iconst 0 + iload 25 + if_setsize + iload 18 + iload 20 + mod + iload 26 + multiply + iload 18 + iload 20 + div + iload 27 + multiply + istore 29 + istore 28 + iload 28 + iload 29 + iconst 0 + iconst 0 + iload 25 + sconst "setSpellPosition" + runelite_callback + if_setposition + iload 17 + iload 25 + invoke 2614 + iconst 1 + if_icmpeq LABEL673 + jump LABEL689 +LABEL673: + iload 19 + iconst 40 + if_icmpge LABEL677 + jump LABEL683 +LABEL677: + iload 17 + iconst 599 + oc_param + iload 25 + if_setgraphic + jump LABEL688 +LABEL683: + iload 17 + iconst 597 + oc_param + iload 25 + if_setgraphic +LABEL688: + jump LABEL704 +LABEL689: + iload 19 + iconst 40 + if_icmpge LABEL693 + jump LABEL699 +LABEL693: + iload 17 + iconst 600 + oc_param + iload 25 + if_setgraphic + jump LABEL704 +LABEL699: + iload 17 + iconst 598 + oc_param + iload 25 + if_setgraphic +LABEL704: + iload 25 + invoke 2615 + iload 10 + iconst 1 + if_icmpeq LABEL710 + jump LABEL737 +LABEL710: + iload 1 + iconst 5 + iload 18 + cc_create + iload 19 + iload 19 + iconst 0 + iconst 0 + cc_setsize + iload 28 + iload 29 + iconst 0 + iconst 0 + cc_setposition + iload 17 + iconst 1 + cc_setobject + iconst 255 + cc_settrans + iconst 2612 + iload 17 + iload 1 + iload 2 + iload 12 + sconst "oIIi" + cc_setonclick + jump LABEL757 +LABEL737: + iconst 2622 + iconst 1 + iload 17 + iconst -2147483645 + iconst -1 + iload 2 + iload 12 + sconst "1oIiIi" + iload 25 + if_setonmouserepeat + iconst 2622 + iconst 0 + iload 17 + iconst -2147483645 + iconst -1 + iload 2 + iload 12 + sconst "1oIiIi" + iload 25 + if_setonmouseleave +LABEL757: + iload 18 + iconst 1 + add + istore 18 + jump LABEL621 +LABEL762: + return diff --git a/runelite-client/src/main/resources/scripts/SpecbarRedraw.hash b/runelite-client/src/main/resources/scripts/SpecbarRedraw.hash new file mode 100644 index 0000000000..9715ca5575 --- /dev/null +++ b/runelite-client/src/main/resources/scripts/SpecbarRedraw.hash @@ -0,0 +1 @@ +1EDA8CA79506CC62A192A844B88AC924BAD3060D9E32150C43458E135908329B \ No newline at end of file diff --git a/runelite-client/src/main/resources/scripts/SpecbarRedraw.rs2asm b/runelite-client/src/main/resources/scripts/SpecbarRedraw.rs2asm new file mode 100644 index 0000000000..b71ba6aae4 --- /dev/null +++ b/runelite-client/src/main/resources/scripts/SpecbarRedraw.rs2asm @@ -0,0 +1,247 @@ +.id 187 +.int_stack_count 1 +.string_stack_count 0 +.int_var_count 5 +.string_var_count 1 + iconst 0 + istore 1 + map_members + iconst 1 + if_icmpeq LABEL9 + get_varbit 5314 + iconst 1 + if_icmpeq LABEL9 + jump LABEL14 +LABEL9: + iconst 94 + iconst 3 + inv_getobj + invoke 3648 + istore 1 +LABEL14: + iload 1 + iconst 0 + if_icmple LABEL18 + jump LABEL28 +LABEL18: + iconst 1 ; What we compare the boolean with + iconst 0 ; Boolean + sconst "drawSpecbarAnyway" + runelite_callback + if_icmpeq LABEL38 + iconst 1 + iconst 38862883 + if_sethide + iconst 190 + iconst 28 + iconst 0 + iconst 0 + iconst 38862850 + if_setsize + return +LABEL28: + invoke 1972 + iconst 1 + if_icmpeq LABEL32 + jump LABEL38 +LABEL32: + iconst 190 + iconst 16 + iconst 0 + iconst 0 + iconst 38862850 + if_setsize +LABEL38: + iconst 0 + istore 2 + iconst 38862883 + if_gethide + iconst 1 + if_icmpeq LABEL45 + jump LABEL47 +LABEL45: + iconst 1 + istore 2 +LABEL47: + iconst 0 + iconst 38862883 + if_sethide + get_varp 301 + iconst 0 + if_icmpgt LABEL54 + jump LABEL58 +LABEL54: + iconst 16776960 + iconst 38862888 + if_setcolour + jump LABEL61 +LABEL58: + iconst 16 + iconst 38862888 + if_setcolour +LABEL61: + get_varp 300 + istore 3 + iload 3 + iconst 0 + if_icmplt LABEL67 + jump LABEL69 +LABEL67: + iconst 0 + istore 3 +LABEL69: + sconst "Special Attack: " + iload 3 + iconst 10 + div + tostring + sconst "%" + join_string 3 + iconst 38862888 + if_settext + iload 0 + iload 3 + iload 2 + invoke 189 + iconst 38862884 + iconst 0 + invoke 835 + pop_int ; Specbar is fully built here + iload 1 + iconst 0 + if_icmple RETURN ; Return if the weapon isn't supposed to have a spec + jump CONTINUE ; Idk why I'm doing it like this but it's the jagex way + RETURN: + return + CONTINUE: + iload 3 + iload 1 + if_icmpge LABEL86 + jump LABEL90 +LABEL86: + iconst 3767611 + iconst 38862887 + if_setcolour + jump LABEL93 +LABEL90: + iconst 12907 + iconst 38862887 + if_setcolour +LABEL93: + iconst 38862884 + iconst 0 + invoke 835 + pop_int + iconst 94 + iconst 3 + inv_getobj + istore 4 + iconst 111 + iconst 115 + iconst 1739 + iload 4 + enum + sconst " (" + iload 4 + invoke 3648 + iconst 10 + div + tostring + sconst "%)" + join_string 4 + sstore 0 + iload 4 + switch + 22737: LABEL118 + 22740: LABEL118 + 22743: LABEL118 + 22731: LABEL118 + 22734: LABEL118 + jump LABEL126 +LABEL118: + iconst 111 + iconst 115 + iconst 1739 + iload 4 + enum + sconst " 5-100% " + join_string 2 + sstore 0 +LABEL126: + get_varbit 5712 + iconst 0 + if_icmpeq LABEL130 + jump LABEL192 +LABEL130: + iload 4 + iconst 11235 + if_icmpeq LABEL146 + iload 4 + iconst 20408 + if_icmpeq LABEL146 + iload 4 + iconst 12765 + if_icmpeq LABEL146 + iload 4 + iconst 12768 + if_icmpeq LABEL146 + iload 4 + iconst 12767 + if_icmpeq LABEL146 + jump LABEL176 +LABEL146: + iconst 94 + iconst 13 + inv_getobj + iconst 11212 + if_icmpeq LABEL167 + iconst 94 + iconst 13 + inv_getobj + iconst 11227 + if_icmpeq LABEL167 + iconst 94 + iconst 13 + inv_getobj + iconst 11228 + if_icmpeq LABEL167 + iconst 94 + iconst 13 + inv_getobj + iconst 11229 + if_icmpeq LABEL167 + jump LABEL176 +LABEL167: + sconst "Descent of Dragons: Deal a double attack with dragon arrows that inflicts up to 50% more damage (minimum damage of 8 per hit). (" + iload 4 + invoke 3648 + iconst 10 + div + tostring + sconst "%)" + join_string 3 + sstore 0 +LABEL176: + iconst 526 + iconst -2147483645 + iconst -1 + iconst 38862890 + sload 0 + iconst 25 + iconst 160 + sconst "IiIsii" + iconst 38862883 + if_setonmouserepeat + iconst 40 + iconst 38862890 + sconst "I" + iconst 38862883 + if_setonmouseleave + jump LABEL196 +LABEL192: + iconst -1 + sconst "" + iconst 38862883 + if_setonmouserepeat +LABEL196: + return