Release 1.21
							parent
							
								
									9cb796bc6c
								
							
						
					
					
						commit
						2e6ad55fa1
					
				|  | @ -3,18 +3,22 @@ | |||
| 
 | ||||
| #include "../../Include/Core/Types/Logger.hpp" | ||||
| 
 | ||||
| #define DEBUG_VERBOSE_LOG                   Debug::Verbose << __PRETTY_FUNCTION__ << " > " | ||||
| #define DEBUG_VERBOSE_LOG_END               --Debug::Verbose << __PRETTY_FUNCTION__ << " > " | ||||
| #define DEBUG_VERBOSE_START                 Debug::Verbose++ << __PRETTY_FUNCTION__ << " > Started" << std::endl | ||||
| 
 | ||||
| #define DEBUG_VERBOSE_SUCCESS               --Debug::Verbose << __PRETTY_FUNCTION__ << " > Succeeded > " | ||||
| #define DEBUG_VERBOSE_SUCCESS_NOINFO        --Debug::Verbose << __PRETTY_FUNCTION__ << " > Succeeded" << std::endl | ||||
| #define DEBUG_VERBOSE_SUCCESS_EOF           --Debug::Verbose << " > Succeeded > Reached end of function" << std::endl | ||||
| 
 | ||||
| #define DEBUG_VERBOSE_FAIL                  --Debug::Verbose << __PRETTY_FUNCTION__ << " > Failed > " | ||||
| #define DEBUG_VERBOSE_FAIL_NOINFO           --Debug::Verbose << __PRETTY_FUNCTION__ << " > Failed" << std::endl; | ||||
| #define DEBUG_VERBOSE_FAIL_EOF              --Debug::Verbose << __PRETTY_FUNCTION__ << " > Failed > Reached end of function" << std::endl | ||||
| 
 | ||||
| #define DEBUG_VERBOSE_LOG                       Debug::Verbose << __PRETTY_FUNCTION__ << " > " | ||||
| #define DEBUG_VERBOSE_LOG_SUCCESS               Debug::Verbose << __PRETTY_FUNCTION__ << " > Succeeded > " | ||||
| #define DEBUG_VERBOSE_LOG_SUCCESS_NOINFO        Debug::Verbose << __PRETTY_FUNCTION__ << " > Succeeded" << std::endl | ||||
| #define DEBUG_VERBOSE_LOG_SUCCESS_EOF           Debug::Verbose << __PRETTY_FUNCTION__ << " > Succeeded > Reached end of function" << std::endl | ||||
| #define DEBUG_VERBOSE_LOG_FAIL                  Debug::Verbose << __PRETTY_FUNCTION__ << " > Failed > " | ||||
| #define DEBUG_VERBOSE_LOG_FAIL_NOINFO           Debug::Verbose << __PRETTY_FUNCTION__ << " > Failed" << std::endl | ||||
| #define DEBUG_VERBOSE_LOG_FAIL_EOF              Debug::Verbose << __PRETTY_FUNCTION__ << " > Failed > Reached end of function" << std::endl | ||||
| 
 | ||||
| namespace Debug | ||||
| { | ||||
|     extern Logger Info; | ||||
|  |  | |||
|  | @ -0,0 +1,445 @@ | |||
| #ifndef GLOBALS_HPP_INCLUDED | ||||
| #define GLOBALS_HPP_INCLUDED | ||||
| 
 | ||||
| #include <vector> | ||||
| #include <cstdint> | ||||
| #include <map> | ||||
| 
 | ||||
| namespace Globals | ||||
| { | ||||
|     typedef struct SettingsDef | ||||
|     { | ||||
|         std::int32_t Index = -1; | ||||
|         std::int32_t BitPos = -1; | ||||
|         std::int32_t BitMask = -1; | ||||
|     } SettingsDef; | ||||
| 
 | ||||
|     typedef struct WidgetDef | ||||
|     { | ||||
|         std::int32_t Parent = -1; | ||||
|         std::int32_t Child = -1; | ||||
|         std::int32_t Grandchild = -1; | ||||
|     } WidgetDef; | ||||
| 
 | ||||
|     inline SettingsDef SETTING_COMBAT_SPECIAL               = { 300 }; | ||||
|     inline SettingsDef SETTING_COMBAT_SPECIAL_TOGGLE        = { 301 }; | ||||
|     inline SettingsDef SETTING_COMBAT_AUTO_RETALIATE        = { 172 }; | ||||
|     inline SettingsDef SETTING_COMBAT_POISON                = { 102 }; | ||||
|     inline SettingsDef SETTING_WEAPON_STYLES                = { 43 }; // How many styles the current weapon has
 | ||||
|     inline SettingsDef SETTING_ACCEPT_AID                   = { 427 }; // 13 = on
 | ||||
|     inline SettingsDef SETTING_RUN_MODE                     = { 173 }; // 1 = running
 | ||||
|     inline SettingsDef SETTING_CURRENT_PRAYER               = { 83 }; // To be used with PrayerDefs
 | ||||
|     inline SettingsDef SETTING_BANK_WITHDRAW_MODE           = { 115, 0 }; | ||||
|     inline SettingsDef SETTING_BANK_WITHDRAW_MODE_WIDGET    = { 1666 }; // Which Widget is selected, 0 = 1, 4 = 5, 8 = 10, 12 = X, 16 = ALL
 | ||||
|     inline SettingsDef SETTING_BANK_DEFAULT_QUANTITY        = { 304 }; // Seems to be the value / 2, so if it returns 50, then the default custom quantity is 25
 | ||||
|     inline SettingsDef SETTING_EXCHANGE_CURRENT_SLOT_INDEX          = { 375 }; | ||||
|     inline SettingsDef SETTING_EXCHANGE_CURRENT_SLOT_ITEM_ID        = { 1151 }; | ||||
|     inline SettingsDef SETTING_EXCHANGE_CURRENT_SLOT_ITEM_AMOUNT    = { 563 }; | ||||
|     inline SettingsDef SETTING_EXCHANGE_CURRENT_SLOT_PRICE          = { 1043 }; | ||||
|     inline SettingsDef SETTING_ESC_TO_CLOSE         = { 1224, 31 }; | ||||
|     inline SettingsDef SETTING_SHIFT_CLICK_DROP     = { 1055, 17 }; | ||||
|     inline SettingsDef SETTING_SCROLL_WHEEL_TO_ZOOM = { 1055, 29 }; | ||||
| 
 | ||||
|     inline std::int32_t WIDGET_ROOT_LOBBY                   = 165; | ||||
|     inline std::int32_t WIDGET_ROOT_FIXED                   = 548; | ||||
|     inline std::int32_t WIDGET_ROOT_RESIZABLE               = 161; | ||||
|     inline std::int32_t WIDGET_ROOT_RESIZABLE_SIDE_PANELS   = 164; | ||||
| 
 | ||||
|     //************ Bank.cpp ************//
 | ||||
|     inline std::int32_t BANK_ITEM_CONTAINER_ID      = 95; | ||||
|     inline std::int32_t BANK_SPRITE_ID_CURRENT_TAB  = 1079; | ||||
|     inline std::int32_t BANK_PARENT                 = 12; | ||||
|     inline WidgetDef BANK_MAIN                      = { BANK_PARENT, 3 }; | ||||
|     inline WidgetDef BANK_CLOSE                     = { BANK_PARENT, 3, 11 }; | ||||
|     inline WidgetDef BANK_DEPOSIT_ALL               = { BANK_PARENT, 42 }; | ||||
|     inline WidgetDef BANK_DEPOSIT_EQUIPMENT         = { BANK_PARENT, 42 }; | ||||
|     inline WidgetDef BANK_WITHDRAW_MODE_NOTED       = { BANK_PARENT, 25 }; | ||||
|     inline WidgetDef BANK_WITHDRAW_MODE_ITEM        = { BANK_PARENT, 23 }; | ||||
|     inline WidgetDef BANK_ITEM_CONTAINER_WIDGET     = { BANK_PARENT, 13 }; // Used for scrolling, contains all items, middle of the bank interface
 | ||||
|     inline WidgetDef BANK_TABS_CONTAINER            = { BANK_PARENT, 11 }; // Has all Tab children
 | ||||
|     inline WidgetDef BANK_INVENTORY                 = { 15, 3 }; // When the bank is open, the Inventory has it's own widgets for items
 | ||||
|     inline std::int32_t BANK_WITHDRAW_QUANTITY_CHILDREN[6] = { 29, 31, 33, 35, 37 }; // 1, 5, 10, x, all, uses BANK_PARENT
 | ||||
| 
 | ||||
|     inline std::int32_t BANK_ENTER_PIN_PARENT               = 213; | ||||
|     inline WidgetDef BANK_ENTER_PIN_STATUS                  = { BANK_ENTER_PIN_PARENT, 10 }; // Text widget, has FIRST, SECOND, THIRD, FOURTH, Submitting in it
 | ||||
|     inline std::int32_t BANK_ENTER_PIN_BUTTON_CHILDREN[10]  = { 16, 18, 20, 22, 24, 26, 28, 30, 32, 34 }; // Buttons themselves, uses BANK_ENTER_PIN_PARENT,
 | ||||
|     // grandchild 0 = proper widget bounds, grandchild 1 = text
 | ||||
| 
 | ||||
|     //************ Chat.cpp ************//
 | ||||
|     typedef struct ChatWidgetDef | ||||
|     { | ||||
|         std::int32_t Parent = -1; | ||||
|         std::int32_t TitleChild = -1; | ||||
|         std::int32_t ContinueChild = -1; | ||||
|         std::int32_t ContentChild = -1; | ||||
|     } ChatWidgetDef; | ||||
| 
 | ||||
|     inline ChatWidgetDef CHAT_NPC_CHAT_WIDGETS          = { 231, 2, 3, 4 }; | ||||
|     inline ChatWidgetDef CHAT_PLAYER_CHAT_WIDGETS       = { 217, 2, 3, 4 }; | ||||
|     inline ChatWidgetDef CHAT_GAME_CHAT_WIDGETS         = { 193, 2, 3, 4 }; | ||||
|     inline ChatWidgetDef CHAT_LEVEL_UP_CHAT_WIDGETS     = { 233, 1, 2, 3 }; | ||||
|     inline ChatWidgetDef CHAT_BANK_PIN_ERROR_WIDGETS    = { 229, 1, 2 }; | ||||
| 
 | ||||
|     inline WidgetDef CHAT_SELECT_OPTION_CONTAINER   = { 219, 1 }; // Container for all Select Option options
 | ||||
|     inline WidgetDef CHAT_SELECT_OPTION_TITLE       = { CHAT_SELECT_OPTION_CONTAINER.Parent, CHAT_SELECT_OPTION_CONTAINER.Child, 0 }; | ||||
| 
 | ||||
|     inline WidgetDef CHAT_ENTER_AMOUNT_TITLE    = { 162, 44 }; | ||||
|     inline WidgetDef CHAT_ENTER_AMOUNT          = { 162, 45 }; // Input widget (* when blank)
 | ||||
| 
 | ||||
|     //************ DepositBox.cpp ************//
 | ||||
|     inline std::int32_t DEPOSIT_BOX_PARENT          = 192; | ||||
|     inline WidgetDef DEPOSIT_BOX_CLOSE              = { DEPOSIT_BOX_PARENT, 1, 11 }; | ||||
|     inline WidgetDef DEPOSIT_BOX_DEPOSIT_ALL        = { DEPOSIT_BOX_PARENT, 4 }; | ||||
|     inline WidgetDef DEPOSIT_BOX_DEPOSIT_EQUIPMENT  = { DEPOSIT_BOX_PARENT, 6 }; | ||||
|     inline WidgetDef DEPOSIT_BOX_DEPOSIT_LOOT       = { DEPOSIT_BOX_PARENT, 8 }; | ||||
| 
 | ||||
|     //************ Exchange.cpp ************//
 | ||||
|     inline std::int32_t EXCHANGE_PARENT                 = 465; | ||||
|     inline WidgetDef EXCHANGE_MAIN                      = { EXCHANGE_PARENT, 0 }; | ||||
|     inline WidgetDef EXCHANGE_BACK                      = { EXCHANGE_PARENT, 4 }; | ||||
|     inline WidgetDef EXCHANGE_CLOSE                     = { EXCHANGE_PARENT, 2, 11 }; | ||||
|     inline WidgetDef EXCHANGE_SPRITE_TYPE               = { EXCHANGE_PARENT, 24, 19}; | ||||
|     inline WidgetDef EXCHANGE_ITEM                      = { EXCHANGE_PARENT, 24, 21 }; | ||||
|     inline WidgetDef EXCHANGE_COLLECT_CONTAINER_WIDGET  = { EXCHANGE_PARENT, 6, 1 }; | ||||
|     inline WidgetDef EXCHANGE_COLLECT_SLOT_ONE          = { EXCHANGE_PARENT, 23, 2 }; | ||||
|     inline WidgetDef EXCHANGE_COLLECT_SLOT_TWO          = { EXCHANGE_PARENT, 23, 3 }; | ||||
|     inline WidgetDef EXCHANGE_AMOUNT                    = { EXCHANGE_PARENT, 24, 7 }; | ||||
|     inline WidgetDef EXCHANGE_PRICE                     = { EXCHANGE_PARENT, 24, 12 }; | ||||
|     inline WidgetDef EXCHANGE_GUIDE                     = { EXCHANGE_PARENT, 24, 11}; | ||||
|     inline WidgetDef EXCHANGE_CONFIRM                   = { EXCHANGE_PARENT, 27, 0 }; | ||||
|     inline WidgetDef EXCHANGE_ABORT                     = { EXCHANGE_PARENT, 22, 0 }; | ||||
| 
 | ||||
|     inline WidgetDef EXCHANGE_CHAT                      = { 162, 44 }; | ||||
|     inline WidgetDef EXCHANGE_CHAT_ENTER                = { 162, 45 }; | ||||
|     inline WidgetDef EXCHANGE_CHAT_CHOOSE               = { 162, 53 }; | ||||
| 
 | ||||
|     inline std::int32_t EXCHANGE_SLOT_START         = 7; | ||||
|     inline std::int32_t EXCHANGE_WIDGET_SPRITE_BUY  = 26; // Widget Grandchild
 | ||||
|     inline std::int32_t EXCHANGE_WIDGET_SPRITE_SELL = EXCHANGE_WIDGET_SPRITE_BUY + 1; // Widget Grandchild
 | ||||
| 
 | ||||
|     inline std::int32_t EXCHANGE_SPRITE_BUY         = 1108; | ||||
|     inline std::int32_t EXCHANGE_SPRITE_SELL        = 1106; | ||||
|     inline std::int32_t EXCHANGE_SPRITE_MINI_BUY    = 1118; | ||||
|     inline std::int32_t EXCHANGE_SPRITE_MINI_SELL   = 1119; | ||||
| 
 | ||||
|     //************ Login.cpp ************//
 | ||||
|     inline WidgetDef LOGIN_LOBBY_PLAY = { 378, 81 }; | ||||
| 
 | ||||
|     //************ Makescreen.cpp ************//
 | ||||
|     inline std::int32_t MAKESCREEN_PARENT           = 270; | ||||
|     inline WidgetDef MAKESCREEN_MAKE_ONE            = { MAKESCREEN_PARENT, 7, 0 }; // 0 is for the sprite
 | ||||
|     inline WidgetDef MAKESCREEN_MAKE_FIVE           = { MAKESCREEN_PARENT, 8, 0 }; // 0 is for the sprite
 | ||||
|     inline WidgetDef MAKESCREEN_MAKE_TEN            = { MAKESCREEN_PARENT, 9, 0 }; // 0 is for the sprite
 | ||||
|     inline WidgetDef MAKESCREEN_MAKE_CUSTOM         = { MAKESCREEN_PARENT, 10, 0 }; // 0 is for the sprite
 | ||||
|     inline WidgetDef MAKESCREEN_MAKE_CUSTOM_TEXT    = { MAKESCREEN_PARENT, 10, 9 }; | ||||
|     inline WidgetDef MAKESCREEN_MAKE_X              = { MAKESCREEN_PARENT, 11 }; | ||||
|     inline WidgetDef MAKESCREEN_MAKE_ALL            = { MAKESCREEN_PARENT, 12, 0 }; // 0 is for the sprite
 | ||||
|     inline WidgetDef MAKESCREEN_MAKE_MIDDLE         = { MAKESCREEN_PARENT, 14 }; | ||||
| 
 | ||||
|     //************ Minimap.cpp ************//
 | ||||
|     // 0 - Fixed; 1 - Resizable; 2 - Resizable + Side Panels
 | ||||
|     inline WidgetDef MINIMAP_MIDDLE[3]      = { { 548, 8 }, { 161, 25 }, { 164, 25 } }; | ||||
|     inline WidgetDef MINIMAP_COMPASS[3]     = { { 548, 7 }, { 161, 24 }, { 164, 24 } }; | ||||
|     inline WidgetDef MINIMAP_CURE           = { 160, 4 }; | ||||
|     inline WidgetDef MINIMAP_QUICK_PRAYER   = { 160, 14 }; | ||||
|     inline WidgetDef MINIMAP_TOGGLE_RUN     = { 160, 22 }; | ||||
| 
 | ||||
|     //************ Trade.cpp ************//
 | ||||
|     inline WidgetDef TRADE_SCREEN                           = { 335, 3 }; | ||||
|     inline std::int32_t TRADE_ITEM_CONTAINER_MY_OFFER       = 90; | ||||
|     inline std::int32_t TRADE_ITEM_CONTAINER_THEIR_OFFER    = 32858; | ||||
| 
 | ||||
|     //************ Item.cpp ************//
 | ||||
|     inline std::int32_t EQUIPMENT_ITEM_CONTAINER_WIDGET = 387; // Item container parent, (Index + 6)
 | ||||
| 
 | ||||
|     //************ RandomHandler.cpp ************//
 | ||||
|     inline std::vector<std::string> RANDOM_NPC_NAMES = | ||||
|     {   "Bee keeper", | ||||
|         "Capt' Arnav", | ||||
|         "Niles", | ||||
|         "Miles", | ||||
|         "Giles", | ||||
|         "Sergeant Damien", | ||||
|         "Drunken Dwarf", | ||||
|         "Freaky Forester", | ||||
|         "Frog", | ||||
|         "Prince", | ||||
|         "Princess", | ||||
|         "Genie", | ||||
|         "Evil Bob", | ||||
|         "Postie Pete", | ||||
|         "Molly", | ||||
|         "Leo", | ||||
|         "Dr. Jekyll", | ||||
|         "Dr Jekyll", | ||||
|         "Mr. Hyde", | ||||
|         "Mysterious Old Man", | ||||
|         "Mime", | ||||
|         "Pillory Guard", | ||||
|         "Flippa", | ||||
|         "Tilt", | ||||
|         "Prison Pete", | ||||
|         "Quiz Master", | ||||
|         "Rick Turpentine", | ||||
|         "Sandwich lady", | ||||
|         "Strange plant", | ||||
|         "Dunce", | ||||
|     }; | ||||
| 
 | ||||
|     namespace GameTabs | ||||
|     { | ||||
|         //************************************ Tabs ************************************//
 | ||||
|         // These are the "Sprite" widgets, these widgets' sprite IDs change when opened or closed
 | ||||
|         // 0 - Fixed; 1 - Resizable; 2 - Resizable + Side Panels
 | ||||
|         inline WidgetDef TAB_ACCOUNT_MANAGEMENT[3] = { { 548, 32 }, { 161, 36 }, { 164, 36 } }; | ||||
|         inline WidgetDef TAB_CLAN[3]               = { { 548, 31 }, { 161, 35 }, { 164, 35 } }; | ||||
|         inline WidgetDef TAB_COMBAT[3]             = { { 548, 48 }, { 161, 51 }, { 164, 50 } }; | ||||
|         inline WidgetDef TAB_EMOTES[3]             = { { 548, 36 }, { 161, 40 }, { 164, 39 } }; | ||||
|         inline WidgetDef TAB_EQUIPMENT[3]          = { { 548, 52 }, { 161, 55 }, { 164, 54 } }; | ||||
|         inline WidgetDef TAB_FRIENDS[3]            = { { 548, 33 }, { 161, 37 }, { 164, 37 } }; | ||||
|         inline WidgetDef TAB_INVENTORY[3]          = { { 548, 51 }, { 161, 54 }, { 164, 53 } }; | ||||
|         inline WidgetDef TAB_LOGOUT[3]             = { { 548, 34 }, { 161, 38 }, { 164, 29 } }; | ||||
|         inline WidgetDef TAB_MAGIC[3]              = { { 548, 54 }, { 161, 57 }, { 164, 56 } }; | ||||
|         inline WidgetDef TAB_MUSIC[3]              = { { 548, 37 }, { 161, 41 }, { 164, 40 } }; | ||||
|         inline WidgetDef TAB_OPTIONS[3]            = { { 548, 35 }, { 161, 39 }, { 164, 38 } }; | ||||
|         inline WidgetDef TAB_PRAYER[3]             = { { 548, 53 }, { 161, 56 }, { 164, 55 } }; | ||||
|         inline WidgetDef TAB_QUESTS[3]             = { { 548, 50 }, { 161, 53 }, { 164, 52 } }; | ||||
|         inline WidgetDef TAB_STATS[3]              = { { 548, 49 }, { 161, 52 }, { 164, 51 } }; | ||||
| 
 | ||||
|         //************ Combat.cpp ************//
 | ||||
|         inline std::int32_t COMBAT_PARENT              = 593 ; | ||||
|         inline WidgetDef COMBAT_AUTORETALIATE          = { COMBAT_PARENT, 29 }; | ||||
|         inline WidgetDef COMBAT_SPECIAL                = { COMBAT_PARENT, 34 }; | ||||
|         inline std::int32_t COMBAT_STYLE_CHILDREN[4]   = { 3, 7, 11, 15 }; // Uses COMBAT_PARENT as Parent
 | ||||
| 
 | ||||
|         //************ Equipment.cpp ************//
 | ||||
|         inline std::int32_t EQUIPMENT_CONTAINER_ID = 94; | ||||
| 
 | ||||
|         //************ Inventory.cpp ************//
 | ||||
|         inline WidgetDef INVENTORY_ITEM_CONTAINER_WIDGET       = { 149, 0 }; | ||||
|         inline WidgetDef INVENTORY_TRADE_CONTAINER_WIDGET      = { 336, 0 }; // Used for GetSlotBoxes()
 | ||||
|         inline WidgetDef INVENTORY_EXCHANGE_CONTAINER_WIDGET   = { 467, 0 }; // Used for GetSlotBoxes()
 | ||||
|         inline std::int32_t INVENTORY_CONTAINER_ID = 93; | ||||
| 
 | ||||
|         //************ Logout.cpp ************//
 | ||||
|         inline std::int32_t LOGOUT_BUTTONS_PARENT       = 182; | ||||
|         inline WidgetDef LOGOUT_LOGOUT_BUTTON           = { LOGOUT_BUTTONS_PARENT, 8 }; | ||||
|         inline WidgetDef LOGOUT_WORLD_SWITCHER_BUTTON   = { LOGOUT_BUTTONS_PARENT, 3 }; | ||||
|         inline std::int32_t LOGOUT_WORLD_SWITCHER_PARENT            = 69; | ||||
|         inline WidgetDef LOGOUT_WORLD_SWITCHER_TITLE                = { LOGOUT_WORLD_SWITCHER_PARENT, 2 }; // "Current World:" or "Loading" when loading
 | ||||
|         inline WidgetDef LOGOUT_WORLD_SWITCHER_LOGOUT               = { LOGOUT_WORLD_SWITCHER_PARENT, 23 }; // Logout button inside the World Switch interface
 | ||||
|         inline WidgetDef LOGOUT_WORLD_SWITCHER_WORLDS_CONTAINER     = { LOGOUT_WORLD_SWITCHER_PARENT, 16 }; // 69, 15, 301 (world id) Widget has the proper switch/favorite options
 | ||||
|         inline WidgetDef LOGOUT_WORLD_SWITCHER_WORLDS_BOX           = { LOGOUT_WORLD_SWITCHER_PARENT, 5 }; // Bounds/Box containing the entire list
 | ||||
| 
 | ||||
|         //************ Magic.cpp ************//
 | ||||
|         inline std::int32_t MAGIC_SPELLS_PARENT = 218; // Used with Magic spell defs
 | ||||
| 
 | ||||
|         typedef struct SpellDef | ||||
|         { | ||||
|             std::string Name; | ||||
|             std::int32_t WidgetID; | ||||
|             std::int32_t SpriteID; | ||||
|             std::int32_t Level; | ||||
|         } SpellDef; | ||||
|          | ||||
|         inline std::vector<SpellDef> SpellDefs = // To be used with Magic:: SPELL enum
 | ||||
|         { | ||||
|             // Normal, 0-69
 | ||||
|             { "Lumbridge Home Teleport", 4, 356, 0 }, | ||||
|             { "Wind Strike", 5, 65, 1 }, | ||||
|             { "Confuse", 6, 66, 3 }, | ||||
|             { "Enchant Crossbow Bolt", 7, 408, 0 }, | ||||
|             { "Water Strike", 8, 67, 5 }, | ||||
|             { "Lvl-1 Enchant", 9, 68, 7 }, | ||||
|             { "Earth Strike", 10, 69, 9 }, | ||||
|             { "Weaken", 11, 70, 11 }, | ||||
|             { "Fire Strike", 12, 71, 13 }, | ||||
|             { "Bones to Bananas", 13, 72, 15 }, | ||||
|             { "Wind Bolt", 14, 73, 17 }, | ||||
|             { "Curse", 15, 74, 19 }, | ||||
|             { "Bind", 16, 369, 20 }, | ||||
|             { "Low Level Alchemy", 17, 75, 21 }, | ||||
|             { "Water Bolt", 18, 76, 23 }, | ||||
|             { "Varrock Teleport", 19, 77, 25 }, | ||||
|             { "Lvl-2 Enchant", 20, 78, 27 }, | ||||
|             { "Earth Bolt", 21, 79, 29 }, | ||||
|             { "Lumbridge Teleport", 22, 80, 31 }, | ||||
|             { "Telekinetic Grab", 23, 81, 33 }, | ||||
|             { "Fire Bolt", 24, 82, 35 }, | ||||
|             { "Falador Teleport", 25, 83, 37 }, | ||||
|             { "Crumble Undead", 26, 84, 39 }, | ||||
|             { "Teleport to House", 27, 405, 40 }, | ||||
|             { "Wind Blast", 28, 85, 41 }, | ||||
|             { "Superheat Item", 29, 86, 43 }, | ||||
|             { "Camelot Teleport", 30, 87, 45 }, | ||||
|             { "Water Blast", 31, 88, 47 }, | ||||
|             { "Lvl-3 Enchant", 32, 89, 49 }, | ||||
|             { "Iban Blast", 33, 103, 50 }, | ||||
|             { "Snare", 34, 370, 50 }, | ||||
|             { "Magic Dart", 35, 374, 50 }, | ||||
|             { "Ardougne Teleport", 36, 104, 51 }, | ||||
|             { "Earth Blast", 37, 90, 53 }, | ||||
|             { "High Level Alchemy", 38, 91, 55 }, | ||||
|             { "Charge Water Orb", 39, 92, 56 }, | ||||
|             { "Lvl-4 Enchant", 40, 93, 57 }, | ||||
|             { "Watchtower Teleport", 41, 105, 58 }, | ||||
|             { "Fire Blast", 42, 94, 59 }, | ||||
|             { "Charge Earth Orb", 43, 95, 60 }, | ||||
|             { "Bones to Peaches", 44, 404, 60 }, | ||||
|             { "Saradomin strike", 45, 111, 60 }, | ||||
|             { "Claws of Guthix", 46, 110, 60 }, | ||||
|             { "Flames of Zamorak", 47, 109, 60 }, | ||||
|             { "Trollheim Teleport", 48, 373, 61 }, | ||||
|             { "Wind Wave", 49, 96, 62 }, | ||||
|             { "Charge Fire Orb", 50, 97, 63 }, | ||||
|             { "Teleport to Ape Atoll", 51, 407, 64 }, | ||||
|             { "Water Wave", 52, 98, 65 }, | ||||
|             { "Charge Air Orb", 53, 99, 66 }, | ||||
|             { "Vulnerability", 54, 106, 66 }, | ||||
|             { "Lvl-5 Enchant", 55, 100, 68 }, | ||||
|             { "Teleport to Kourend", 56, 410, 69 }, | ||||
|             { "Earth Wave", 57, 101, 70 }, | ||||
|             { "Enfeeble", 58, 107, 73 }, | ||||
|             { "Teleother Lumbridge", 59, 399, 74 }, | ||||
|             { "Fire Wave", 60, 102, 75 }, | ||||
|             { "Entangle", 61, 371, 79 }, | ||||
|             { "Stun", 62, 108, 80 }, | ||||
|             { "Charge", 63, 372, 80 }, | ||||
|             { "Wind Surge", 64, 412, 81 }, | ||||
|             { "Teleother Falador", 65, 400, 82 }, | ||||
|             { "Water Surge", 66, 413, 85 }, | ||||
|             { "Tele Block", 67, 402, 85 }, | ||||
|             { "Teleport to Bounty Target", 68, 409, 85 }, | ||||
|             { "Lvl-6 Enchant", 69, 403, 87 }, | ||||
|             { "Teleother Camelot", 70, 401, 90 }, | ||||
|             { "Earth Surge", 71, 414, 90 }, | ||||
|             { "Lvl-7 Enchant", 72, 411, 93 }, | ||||
|             { "Fire Surge", 73, 415, 95 }, | ||||
|             //Lunar 70-114
 | ||||
|             { "Lunar Home Teleport", 99, 356, 0 }, | ||||
|             { "Bake Pie", 100, 593, 65 }, | ||||
|             { "Geomancy", 140, 613, 65 }, | ||||
|             { "Cure Plant", 101, 617, 66 }, | ||||
|             { "Monster Examine", 102, 627, 66 }, | ||||
|             { "NPC Contact", 103, 618, 67 }, | ||||
|             { "Cure Other", 104, 609, 68 }, | ||||
|             { "Humidify", 105, 628, 69 }, | ||||
|             { "Moonclan Teleport", 106, 594, 69 }, | ||||
|             { "Tele Group Moonclan", 107, 619, 70 }, | ||||
|             { "Cure Me", 108, 612, 71 }, | ||||
|             { "Ourania Teleport", 142, 636, 71 }, | ||||
|             { "Hunter Kit", 109, 629, 71 }, | ||||
|             { "Waterbirth Teleport", 110, 595, 72 }, | ||||
|             { "Tele Group Waterbirth", 111, 620, 73 }, | ||||
|             { "Cure Group", 112, 615, 74 }, | ||||
|             { "Stat Spy", 113, 626, 75 }, | ||||
|             { "Barbarian Teleport", 114, 597, 75 }, | ||||
|             { "Tele Group Barbarian", 115, 621, 76 }, | ||||
|             { "Spin Flax", 141, 635, 76 }, | ||||
|             { "Superglass Make", 116, 598, 77 }, | ||||
|             { "Tan Leather", 117, 633, 78 }, | ||||
|             { "Khazard Teleport", 118, 599, 78 }, | ||||
|             { "Tele Group Khazard", 119, 622, 79 }, | ||||
|             { "Dream", 120, 630, 79 }, | ||||
|             { "String Jewellery", 121, 600, 80 }, | ||||
|             { "Stat Restore Pot Share", 122, 604, 81 }, | ||||
|             { "Magic Imbue", 123, 602, 82 }, | ||||
|             { "Fertile Soil", 124, 603, 83 }, | ||||
|             { "Boost Potion Share", 125, 601, 84 }, | ||||
|             { "Fishing Guild Teleport", 126, 605, 85 }, | ||||
|             { "Teleport to Bounty Target", 68, 409, 85 }, | ||||
|             { "Tele Group Fishing Guild", 127, 623, 86 }, | ||||
|             { "Plank Make", 128, 631, 86 }, | ||||
|             { "Catherby Teleport", 129, 606, 87 }, | ||||
|             { "Tele Group Catherby", 130, 624, 88 }, | ||||
|             { "Recharge Dragonstone", 131, 634, 89 }, | ||||
|             { "Ice Plateau Teleport", 132, 607, 89 }, | ||||
|             { "Tele Group Ice Plateau", 133, 625, 90 }, | ||||
|             { "Energy Transfer", 134, 608, 91 }, | ||||
|             { "Heal Other", 135, 610, 92 }, | ||||
|             { "Vengeance Other", 136, 611, 93 }, | ||||
|             { "Vengeance", 137, 614, 94 }, | ||||
|             { "Heal Group", 138, 616, 95 }, | ||||
|             { "Spellbook Swap", 139, 632, 96 }, | ||||
|             //Ancients 115-140
 | ||||
|             { "Ice Rush", 68, 375, 58 }, | ||||
|             { "Ice Blitz", 69, 377, 84 }, | ||||
|             { "Ice Burst", 70, 376, 70 }, | ||||
|             { "Ice Barrage", 71, 378, 94 }, | ||||
|             { "Blood Rush", 72, 383, 56 }, | ||||
|             { "Blood Blitz", 73, 385, 80 }, | ||||
|             { "Blood Burst", 74, 384, 68 }, | ||||
|             { "Blood Barrage", 75, 386, 92 }, | ||||
|             { "Smoke Rush", 76, 379, 50 }, | ||||
|             { "Smoke Blitz", 77, 381, 74 }, | ||||
|             { "Smoke Burst", 78, 380, 62 }, | ||||
|             { "Smoke Barrage", 79, 382, 86 }, | ||||
|             { "Shadow Rush", 80, 387, 52 }, | ||||
|             { "Shadow Blitz", 81, 389, 76 }, | ||||
|             { "Shadow Burst", 82, 388, 64 }, | ||||
|             { "Shadow Barrage", 83, 390, 88 }, | ||||
|             { "Paddewwa Teleport", 84, 391, 54 }, | ||||
|             { "Senntisten Teleport", 85, 392, 60 }, | ||||
|             { "Kharyrll Teleport", 86, 393, 66 }, | ||||
|             { "Lassar Teleport", 87, 394, 72 }, | ||||
|             { "Dareeyak Teleport", 88, 395, 78 }, | ||||
|             { "Carrallangar Teleport", 89, 396, 84 }, | ||||
|             { "Annakarl Teleport", 90, 397, 90 }, | ||||
|             { "Ghorrock Teleport", 91, 398, 96 }, | ||||
|             { "Teleport to Bounty Target", 92, 409, 85 }, | ||||
|             { "Edgeville Home Teleport", 93, 356, 0 }, | ||||
|         }; | ||||
| 
 | ||||
|         //************ Options.cpp ************//
 | ||||
|         inline std::int32_t OPTIONS_PARENT  = 261; | ||||
|         inline WidgetDef OPTIONS_ACCEPT_AID = { OPTIONS_PARENT, 92 }; | ||||
|         inline WidgetDef OPTIONS_RUN_MODE   = { OPTIONS_PARENT, 95 }; | ||||
| 
 | ||||
|         //************ Prayer.cpp ************//
 | ||||
|         inline std::int32_t PRAYER_PRAYERS_PARENT = 541; // To be used with PrayerDefs
 | ||||
|          | ||||
|         typedef struct PrayerDef | ||||
|         { | ||||
|             std::string Name; | ||||
|             std::int32_t BitPos; | ||||
|             std::int32_t WidgetID; | ||||
|             std::int32_t SpriteID; | ||||
|             std::int32_t Level; | ||||
|         } PrayerDef; | ||||
| 
 | ||||
|         static std::vector<PrayerDef> PrayerDefs = // To be used with Prayer:: PRAYERS enum
 | ||||
|         { | ||||
|             { "Thick Skin", 0, 5, 115, 1 }, | ||||
|             { "Burst of Strength", 1, 6, 116, 4 }, | ||||
|             { "Clarity of Thought", 2, 7, 117, 7 }, | ||||
|             { "Sharp Eye", 18, 23, 133, 8 }, | ||||
|             { "Mystic Will", 19, 24, 134, 9 }, | ||||
|             { "Rock Skin", 3, 8, 118, 10 }, | ||||
|             { "Superhuman Strength", 4, 9, 119, 13 }, | ||||
|             { "Improved Reflexes", 5, 10, 120, 16 }, | ||||
|             { "Rapid Restore", 6, 11, 121, 19 }, | ||||
|             { "Rapid Heal", 7, 12, 122, 22 }, | ||||
|             { "Protect Item", 8, 13, 123, 25 }, | ||||
|             { "Hawk Eye", 20, 25, 502, 26 }, | ||||
|             { "Mystic Lore", 21, 26, 503, 27 }, | ||||
|             { "Steel Skin", 9, 14, 124, 28 }, | ||||
|             { "Ultimate Strength", 10, 15, 125, 31 }, | ||||
|             { "Incredible Reflexes", 11, 16, 126, 34 }, | ||||
|             { "Protect from Magic", 12, 17, 127, 37 }, | ||||
|             { "Protect from Missiles", 13, 18, 128, 40 }, | ||||
|             { "Protect from Melee", 14, 19, 129, 43 }, | ||||
|             { "Eagle Eye", 22, 27, 504, 44 }, | ||||
|             { "Mystic Might", 23, 28, 505, 45 }, | ||||
|             { "Retribution", 15, 20, 131, 46 }, | ||||
|             { "Redemption", 16, 21, 130, 49 }, | ||||
|             { "Smite", 17, 22, 132, 52 }, | ||||
|             { "Preserve", 29, 33, 947, 55 }, | ||||
|             { "Chivalry", 25, 28, 945, 60 }, | ||||
|             { "Piety", 26, 30, 946, 70 }, | ||||
|             { "Rigour", 24, 31, 1420, 74 }, | ||||
|             { "Augury", 27, 32, 1421, 77 } | ||||
|         }; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| #endif // GLOBALS_HPP_INCLUDED
 | ||||
|  | @ -7,6 +7,7 @@ | |||
| 
 | ||||
| typedef enum ScrollDirection | ||||
| { | ||||
|     SCROLL_NONE = -1, | ||||
|     SCROLL_DOWN = 0, | ||||
|     SCROLL_UP = 1 | ||||
| } ScrollDirection; | ||||
|  |  | |||
|  | @ -7,6 +7,7 @@ | |||
| #include "Paint.hpp" | ||||
| #include "Script.hpp" | ||||
| #include "Time.hpp" | ||||
| #include "Globals.hpp" | ||||
| 
 | ||||
| #include "Types/Tile.hpp" | ||||
| #include "Types/Point.hpp" | ||||
|  | @ -133,6 +134,14 @@ namespace Internal | |||
|     std::int32_t GetGameTick(); | ||||
|     Deque GetGraphicsObjects(); | ||||
|     std::vector<std::vector<std::vector<Deque>>> GetGroundItems(); | ||||
|     std::int32_t GetHintArrowNPCIndex(); | ||||
|     std::int32_t GetHintArrowOffsetX(); | ||||
|     std::int32_t GetHintArrowOffsetY(); | ||||
|     std::int32_t GetHintArrowPlayerIndex(); | ||||
|     std::int32_t GetHintArrowTargetType(); | ||||
|     std::int32_t GetHintArrowX(); | ||||
|     std::int32_t GetHintArrowY(); | ||||
|     std::int32_t GetHintArrowZ(); | ||||
|     bool GetIsMember(); | ||||
|     HashTable GetItemContainers(); | ||||
|     IndexableData GetItemIndexableData(); | ||||
|  |  | |||
|  | @ -3,7 +3,6 @@ | |||
| 
 | ||||
| #include <cstdint> | ||||
| #include <vector> | ||||
| 
 | ||||
| #include "Types/Point.hpp" | ||||
| 
 | ||||
| /** @addtogroup Math
 | ||||
|  |  | |||
|  | @ -5,7 +5,6 @@ | |||
| #include "Types/Convex.hpp" | ||||
| #include "Types/Tile.hpp" | ||||
| 
 | ||||
| 
 | ||||
| /** @addtogroup Core
 | ||||
| * @{ */ | ||||
| namespace Paint | ||||
|  |  | |||
|  | @ -17,6 +17,7 @@ class Wireframe | |||
|         Point GetHybridRandomPoint(double ProbabilityX, double ProbabilityY, double StandardDeviationX, double StandardDeviationY, double PointGenAccuracy) const; | ||||
|         Point GetProfileHybridRandomPoint() const; | ||||
|         Point GetProfileHybridRandomPoint(double PointGenAccuracy) const; | ||||
|         Point GetHighPrecisionPoint() const; | ||||
|         Box GetBox() const; | ||||
|         Convex GetConvex() const; | ||||
|         bool Contains(const Point& P) const; | ||||
|  |  | |||
|  | @ -3,7 +3,6 @@ | |||
| 
 | ||||
| #include <string> | ||||
| #include <cstdint> | ||||
| #include <regex> | ||||
| 
 | ||||
| /** @addtogroup GameTabs
 | ||||
| * @{ */ | ||||
|  | @ -158,7 +157,6 @@ namespace Magic | |||
|         NONE | ||||
|     } SPELL; | ||||
| 
 | ||||
| 
 | ||||
|     bool IsOpen(); | ||||
|     bool Open(); | ||||
| 
 | ||||
|  |  | |||
|  | @ -23,7 +23,6 @@ namespace Menu | |||
|      * @brief Opens the menu by right-clicking wherever the mouse currently is | ||||
|      * @return true if the menu is currently open or opened by right clicking | ||||
|      * @return false if WaitFunc fails - WaitFunc(1000, 100, Menu::IsOpen, true); | ||||
|      * @note Implements an %Interactable delay if succesful | ||||
|      */ | ||||
|     bool Open(); | ||||
| 
 | ||||
|  | @ -31,7 +30,6 @@ namespace Menu | |||
|      * @brief Closes the menu by moving the mouse to either left or right of the menu, uses the current mouse position as a base point | ||||
|      * @return true if the menu isn't open, or closed by moving the mouse | ||||
|      * @return false if the generated point is off-screen, or WaitFunc fails - WaitFunc(1000, 100, Menu::IsOpen, false); | ||||
|      * @note Implements an %Interactable delay if succesful | ||||
|      */ | ||||
|     bool Close(); | ||||
| 
 | ||||
|  | @ -45,22 +43,29 @@ namespace Menu | |||
| 
 | ||||
|     /**
 | ||||
|      * @brief Get the raw, un-filtered menu actions | ||||
|      * @description By default the game includes html code in menu actions/targets | ||||
|      * This function returns those actions without the removal of the html code | ||||
|      * @return std::vector<std::string> of raw menu actions | ||||
|      * @note The game includes color code in some menu actions or targets | ||||
|      * @warning The result can be inaccurate if the menu isn't open before calling this function | ||||
|      */ | ||||
|     [[deprecated("Use Internal::GetMenuActions() instead")]] | ||||
|     std::vector<std::string> GetActionsRaw(); | ||||
| 
 | ||||
|     /**
 | ||||
|      * @brief Get the raw, un-filtered menu targets | ||||
|      * @description By default the game includes html code in menu actions/targets | ||||
|      * This function returns those targets without the removal of the html code | ||||
|      * @brief Get the raw, un-touched menu targets | ||||
|      * @return std::vector<std::string> of targets | ||||
|      * @note The game includes color code in some menu actions or targets | ||||
|      * @warning The result can be inaccurate if the menu isn't open before calling this function | ||||
|      */ | ||||
|     [[deprecated("Use Internal::GetMenuTargets() instead")]] | ||||
|     std::vector<std::string> GetTargetsRaw(); | ||||
| 
 | ||||
|     /**
 | ||||
|      * @brief Attempts to verify the order of the passed menu actions and targets | ||||
|      * @return true if the passed menu actions and targets are in the correct order | ||||
|      * @note This isn't a guarantee, but testing shows near zero failure rate | ||||
|      */ | ||||
|     bool OptionsValid(std::int32_t MenuCount, const std::vector<std::string>& RawActions, const std::vector<std::string>& RawTargets); | ||||
| 
 | ||||
|     /**
 | ||||
|      * @brief Get the menu actions | ||||
|      * | ||||
|  | @ -68,7 +73,7 @@ namespace Menu | |||
|      * 'Use' - action 'gold bar' - target | ||||
|      * 'Attack' - action 'Guard  (level-21)' - target | ||||
|      * @return std::vector<std::string> array of menu actions | ||||
|      * @warning The result can be inaccurate if the menu isn't open before calling this function | ||||
|      * @warning The result can rarely be inaccurate if the menu isn't open before calling this function | ||||
|      */ | ||||
|     std::vector<std::string> GetActions(); | ||||
| 
 | ||||
|  | @ -79,7 +84,7 @@ namespace Menu | |||
|      * 'Use' - action 'gold bar' - target | ||||
|      * 'Attack' - action 'Guard  (level-21)' - target | ||||
|      * @return std::vector<std::string> array of menu targets | ||||
|      * @warning The result can be inaccurate if the menu isn't open before calling this function | ||||
|      * @warning The result can rarely be inaccurate if the menu isn't open before calling this function | ||||
|      */ | ||||
|     std::vector<std::string> GetTargets(); | ||||
| 
 | ||||
|  | @ -92,9 +97,22 @@ namespace Menu | |||
|      * 'Use gold bar' - option | ||||
|      * 'Attack Guard  (level-21)' - option | ||||
|      * @return std::vector<std::string> array of menu options | ||||
|      * @warning The result can be inaccurate if the menu isn't open before calling this function | ||||
|      * @warning The result can rarely be inaccurate if the menu isn't open before calling this function | ||||
|      */ | ||||
|     std::vector<std::string> GetOptions(); | ||||
|     /**
 | ||||
|      * @brief Get the menu options split into pairs instead of whole strings | ||||
|      * | ||||
|      * @description | ||||
|      * 'Use' - action 'gold bar' - target | ||||
|      * 'Attack' - action 'Guard  (level-21)' - target | ||||
|      * 'Use gold bar' - option | ||||
|      * 'Attack Guard  (level-21)' - option | ||||
|      * first is the action, second is the target | ||||
|      * @return std::vector<std::pair<std::string, std::string>> | ||||
|      * @warning The result can rarely be inaccurate if the menu isn't open before calling this function | ||||
|      */ | ||||
|     std::vector<std::pair<std::string, std::string>> GetSplitOptions(); | ||||
| 
 | ||||
| 
 | ||||
|     /**
 | ||||
|  | @ -111,7 +129,7 @@ namespace Menu | |||
|      * @return std::int32_t The index of the first found option, -1 if the option wasn't found | ||||
|      * @note Notice that 'Attack Guard  (level-40)' has a double space after 'Guard', menu options can vary, in this case the menu option i'm looking for | ||||
|      * has a double space after 'Guard'. | ||||
|      * @warning The result can be inaccurate if the menu isn't open before calling this function | ||||
|      * @warning The result can rarely be inaccurate if the menu isn't open before calling this function | ||||
|      */ | ||||
|     std::int32_t IndexOf(const std::string& Option); | ||||
| 
 | ||||
|  | @ -124,7 +142,7 @@ namespace Menu | |||
|      * @param Options %Menu options to look for, returns on first option found, the more specific the options, the more accurate the result will be | ||||
|      * @return std::int32_t The index of the first found option, -1 if the option wasn't found | ||||
|      * @see Menu::IndexOf(const std::string& Option) | ||||
|      * @warning The result can be inaccurate if the menu isn't open before calling this function | ||||
|      * @warning The result can rarely be inaccurate if the menu isn't open before calling this function | ||||
|      */ | ||||
|     std::int32_t IndexOf(const std::vector<std::string>& Options); | ||||
| 
 | ||||
|  | @ -138,7 +156,7 @@ namespace Menu | |||
|      * std::string [1] = Action that was found at index | ||||
|      * std::string [2] = Target that was found at index | ||||
|      * @see Menu::IndexOf(const std::string& Option) | ||||
|      * @warning The result can be inaccurate if the menu isn't open before calling this function | ||||
|      * @warning The result can rarely be inaccurate if the menu isn't open before calling this function | ||||
|      */ | ||||
|     std::tuple<std::int32_t, std::string, std::string> FindOption(std::uint32_t Index); | ||||
| 
 | ||||
|  | @ -151,7 +169,7 @@ namespace Menu | |||
|      * std::string [1] = Action that was found | ||||
|      * std::string [2] = Target that was found | ||||
|      * @see Menu::IndexOf(const std::string& Option) | ||||
|      * @warning The result can be inaccurate if the menu isn't open before calling this function | ||||
|      * @warning The result can rarely be inaccurate if the menu isn't open before calling this function | ||||
|      */ | ||||
|     std::tuple<std::int32_t, std::string, std::string> FindOption(const std::string& Option); | ||||
| 
 | ||||
|  | @ -164,7 +182,7 @@ namespace Menu | |||
|      * std::string [1] = Action that was found | ||||
|      * std::string [2] = Target that was found | ||||
|      * @see Menu::IndexOf(const std::string& Options) | ||||
|      * @warning The result can be inaccurate if the menu isn't open before calling this function | ||||
|      * @warning The result can rarely be inaccurate if the menu isn't open before calling this function | ||||
|      */ | ||||
|     std::tuple<std::int32_t, std::string, std::string> FindOption(const std::vector<std::string>& Options); | ||||
| 
 | ||||
|  | @ -176,7 +194,7 @@ namespace Menu | |||
|      * std::int32_t [0] = Index of the option that was found, -1 if the option wasn't found | ||||
|      * std::string [1] = Action that was found | ||||
|      * std::string [2] = Target that was found | ||||
|      * @warning The result can be inaccurate if the menu isn't open before calling this function | ||||
|      * @warning The result can rarely be inaccurate if the menu isn't open before calling this function | ||||
|      * @see Menu::IndexOf(const std::string& Option) | ||||
|      */ | ||||
|     std::vector<std::tuple<std::int32_t, std::string, std::string>> FindOptions(const std::string& Option); | ||||
|  | @ -190,7 +208,7 @@ namespace Menu | |||
|      * std::string [1] = Action that was found | ||||
|      * std::string [2] = Target that was found | ||||
|      * @see Menu::IndexOf(const std::string& Options) | ||||
|      * @warning The result can be inaccurate if the menu isn't open before calling this function | ||||
|      * @warning The result can rarely be inaccurate if the menu isn't open before calling this function | ||||
|      */ | ||||
|     std::vector<std::tuple<std::int32_t, std::string, std::string>> FindOptions(const std::vector<std::string>& Options); | ||||
| 
 | ||||
|  | @ -201,7 +219,7 @@ namespace Menu | |||
|      * @param Option %Menu option to look for, the more specific the option, the more specific the option, the more accurate the result will be | ||||
|      * @return true if the found index is valid (Index >= 0) | ||||
|      * @see Menu::IndexOf(const std::string& Option) | ||||
|      * @warning The result can be inaccurate if the menu isn't open before calling this function | ||||
|      * @warning The result can rarely be inaccurate if the menu isn't open before calling this function | ||||
|      */ | ||||
|     bool Contains(const std::string& Option); | ||||
| 
 | ||||
|  | @ -211,7 +229,7 @@ namespace Menu | |||
|      * @param %Options %Menu options to look for, returns on first option found, the more specific the options, the more accurate the result will be | ||||
|      * @return true if the found index is valid (Index >= 0) | ||||
|      * @see Menu::IndexOf(const std::string& Options) | ||||
|      * @warning The result can be inaccurate if the menu isn't open before calling this function | ||||
|      * @warning The result can rarely be inaccurate if the menu isn't open before calling this function | ||||
|      */ | ||||
|     bool Contains(const std::vector<std::string>& Options); | ||||
| 
 | ||||
|  | @ -248,7 +266,6 @@ namespace Menu | |||
|      * @param CloseMenu Close the menu if the function fails by using Menu::Close(), true by default | ||||
|      * @return true if the function selected the option by index | ||||
|      * @return false if the menu isn't open, the passed index is invalid (-1), the option box is off-screen, or the WaitFunc failed - WaitFunc(1000, 100, Menu::IsOpen, false) | ||||
|      * @note Implements an %Interactable delay if succesful | ||||
|      */ | ||||
|     bool Select(std::int32_t Index, bool CloseMenu = true); | ||||
| 
 | ||||
|  | @ -259,7 +276,6 @@ namespace Menu | |||
|      * @param CloseMenu Close the menu if the function fails by using Menu::Close(), true by default | ||||
|      * @return true if the function selected the option by option | ||||
|      * @return false if the menu isn't open, the found option was invalid, the option box is off-screen, or the WaitFunc failed - WaitFunc(1000, 100, Menu::IsOpen, false) | ||||
|      * @note Implements an %Interactable delay if succesful | ||||
|      * @see Menu::IndexOf(const std::string& Option) | ||||
|      */ | ||||
|     bool Select(const std::string& Option, bool CloseMenu = true); | ||||
|  | @ -271,7 +287,6 @@ namespace Menu | |||
|      * @param CloseMenu Close the menu if the function fails using Menu::Close(), true by default | ||||
|      * @return true if the function selected the option by the first found option | ||||
|      * @return false if the menu isn't open, the found option was invalid, the option box is off-screen, or the WaitFunc failed - WaitFunc(1000, 100, Menu::IsOpen, false) | ||||
|      * @note Implements an %Interactable delay if succesful | ||||
|      * @see Menu::IndexOf(const std::string& Options) | ||||
|      */ | ||||
|     bool Select(const std::vector<std::string>& Options, bool CloseMenu = true); | ||||
|  |  | |||
|  | @ -17,16 +17,16 @@ namespace Interact | |||
|     bool Click(const Button& B = BUTTON_LEFT); | ||||
| 
 | ||||
|     bool Click(const Point& P, const Button& B = BUTTON_LEFT); | ||||
|     bool Click(const Point& P, const std::string& Option); | ||||
|     bool Click(const Point& P, const std::vector<std::string>& Options); | ||||
|     bool Click(const Point& P, const std::string& Option, const std::string& Target = ""); | ||||
|     bool Click(const Point& P, const std::vector<std::string>& Options, const std::string& Target = ""); | ||||
| 
 | ||||
|     bool Click(const Box& B, const Button& Button = BUTTON_LEFT); | ||||
|     bool Click(const Box& B, const std::string& Option); | ||||
|     bool Click(const Box& B, const std::vector<std::string>& Options); | ||||
|     bool Click(const Box& B, const std::string& Option, const std::string& Target = ""); | ||||
|     bool Click(const Box& B, const std::vector<std::string>& Options, const std::string& Target = ""); | ||||
| 
 | ||||
|     bool Click(const Convex& C, const Button& B = BUTTON_LEFT); | ||||
|     bool Click(const Convex& C, const std::string& Option); | ||||
|     bool Click(const Convex& C, const std::vector<std::string>& Options); | ||||
|     bool Click(const Convex& C, const std::string& Option, const std::string& Target = ""); | ||||
|     bool Click(const Convex& C, const std::vector<std::string>& Options, const std::string& Target = ""); | ||||
| 
 | ||||
|     bool Scroll(const ScrollDirection& Direction); | ||||
|     bool ScrollUntil(const ScrollDirection& Direction, std::int32_t Duration, const std::function<bool()>& Func); | ||||
|  |  | |||
										
											Binary file not shown.
										
									
								
							
		Loading…
	
		Reference in New Issue