Release 1.21
							parent
							
								
									9cb796bc6c
								
							
						
					
					
						commit
						2e6ad55fa1
					
				|  | @ -3,18 +3,22 @@ | ||||||
| 
 | 
 | ||||||
| #include "../../Include/Core/Types/Logger.hpp" | #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_START                 Debug::Verbose++ << __PRETTY_FUNCTION__ << " > Started" << std::endl | ||||||
| 
 |  | ||||||
| #define DEBUG_VERBOSE_SUCCESS               --Debug::Verbose << __PRETTY_FUNCTION__ << " > Succeeded > " | #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_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_SUCCESS_EOF           --Debug::Verbose << " > Succeeded > Reached end of function" << std::endl | ||||||
| 
 |  | ||||||
| #define DEBUG_VERBOSE_FAIL                  --Debug::Verbose << __PRETTY_FUNCTION__ << " > Failed > " | #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_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_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 | namespace Debug | ||||||
| { | { | ||||||
|     extern Logger Info; |     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 | typedef enum ScrollDirection | ||||||
| { | { | ||||||
|  |     SCROLL_NONE = -1, | ||||||
|     SCROLL_DOWN = 0, |     SCROLL_DOWN = 0, | ||||||
|     SCROLL_UP = 1 |     SCROLL_UP = 1 | ||||||
| } ScrollDirection; | } ScrollDirection; | ||||||
|  |  | ||||||
|  | @ -7,6 +7,7 @@ | ||||||
| #include "Paint.hpp" | #include "Paint.hpp" | ||||||
| #include "Script.hpp" | #include "Script.hpp" | ||||||
| #include "Time.hpp" | #include "Time.hpp" | ||||||
|  | #include "Globals.hpp" | ||||||
| 
 | 
 | ||||||
| #include "Types/Tile.hpp" | #include "Types/Tile.hpp" | ||||||
| #include "Types/Point.hpp" | #include "Types/Point.hpp" | ||||||
|  | @ -133,6 +134,14 @@ namespace Internal | ||||||
|     std::int32_t GetGameTick(); |     std::int32_t GetGameTick(); | ||||||
|     Deque GetGraphicsObjects(); |     Deque GetGraphicsObjects(); | ||||||
|     std::vector<std::vector<std::vector<Deque>>> GetGroundItems(); |     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(); |     bool GetIsMember(); | ||||||
|     HashTable GetItemContainers(); |     HashTable GetItemContainers(); | ||||||
|     IndexableData GetItemIndexableData(); |     IndexableData GetItemIndexableData(); | ||||||
|  |  | ||||||
|  | @ -3,7 +3,6 @@ | ||||||
| 
 | 
 | ||||||
| #include <cstdint> | #include <cstdint> | ||||||
| #include <vector> | #include <vector> | ||||||
| 
 |  | ||||||
| #include "Types/Point.hpp" | #include "Types/Point.hpp" | ||||||
| 
 | 
 | ||||||
| /** @addtogroup Math
 | /** @addtogroup Math
 | ||||||
|  |  | ||||||
|  | @ -5,7 +5,6 @@ | ||||||
| #include "Types/Convex.hpp" | #include "Types/Convex.hpp" | ||||||
| #include "Types/Tile.hpp" | #include "Types/Tile.hpp" | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| /** @addtogroup Core
 | /** @addtogroup Core
 | ||||||
| * @{ */ | * @{ */ | ||||||
| namespace Paint | namespace Paint | ||||||
|  |  | ||||||
|  | @ -17,6 +17,7 @@ class Wireframe | ||||||
|         Point GetHybridRandomPoint(double ProbabilityX, double ProbabilityY, double StandardDeviationX, double StandardDeviationY, double PointGenAccuracy) const; |         Point GetHybridRandomPoint(double ProbabilityX, double ProbabilityY, double StandardDeviationX, double StandardDeviationY, double PointGenAccuracy) const; | ||||||
|         Point GetProfileHybridRandomPoint() const; |         Point GetProfileHybridRandomPoint() const; | ||||||
|         Point GetProfileHybridRandomPoint(double PointGenAccuracy) const; |         Point GetProfileHybridRandomPoint(double PointGenAccuracy) const; | ||||||
|  |         Point GetHighPrecisionPoint() const; | ||||||
|         Box GetBox() const; |         Box GetBox() const; | ||||||
|         Convex GetConvex() const; |         Convex GetConvex() const; | ||||||
|         bool Contains(const Point& P) const; |         bool Contains(const Point& P) const; | ||||||
|  |  | ||||||
|  | @ -3,7 +3,6 @@ | ||||||
| 
 | 
 | ||||||
| #include <string> | #include <string> | ||||||
| #include <cstdint> | #include <cstdint> | ||||||
| #include <regex> |  | ||||||
| 
 | 
 | ||||||
| /** @addtogroup GameTabs
 | /** @addtogroup GameTabs
 | ||||||
| * @{ */ | * @{ */ | ||||||
|  | @ -158,7 +157,6 @@ namespace Magic | ||||||
|         NONE |         NONE | ||||||
|     } SPELL; |     } SPELL; | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
|     bool IsOpen(); |     bool IsOpen(); | ||||||
|     bool Open(); |     bool Open(); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -23,7 +23,6 @@ namespace Menu | ||||||
|      * @brief Opens the menu by right-clicking wherever the mouse currently is |      * @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 true if the menu is currently open or opened by right clicking | ||||||
|      * @return false if WaitFunc fails - WaitFunc(1000, 100, Menu::IsOpen, true); |      * @return false if WaitFunc fails - WaitFunc(1000, 100, Menu::IsOpen, true); | ||||||
|      * @note Implements an %Interactable delay if succesful |  | ||||||
|      */ |      */ | ||||||
|     bool Open(); |     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 |      * @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 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); |      * @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(); |     bool Close(); | ||||||
| 
 | 
 | ||||||
|  | @ -45,22 +43,29 @@ namespace Menu | ||||||
| 
 | 
 | ||||||
|     /**
 |     /**
 | ||||||
|      * @brief Get the raw, un-filtered menu actions |      * @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 |      * @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 |      * @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(); |     std::vector<std::string> GetActionsRaw(); | ||||||
| 
 | 
 | ||||||
|     /**
 |     /**
 | ||||||
|      * @brief Get the raw, un-filtered menu targets |      * @brief Get the raw, un-touched 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 |  | ||||||
|      * @return std::vector<std::string> of 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 |      * @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(); |     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 |      * @brief Get the menu actions | ||||||
|      * |      * | ||||||
|  | @ -68,7 +73,7 @@ namespace Menu | ||||||
|      * 'Use' - action 'gold bar' - target |      * 'Use' - action 'gold bar' - target | ||||||
|      * 'Attack' - action 'Guard  (level-21)' - target |      * 'Attack' - action 'Guard  (level-21)' - target | ||||||
|      * @return std::vector<std::string> array of menu actions |      * @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(); |     std::vector<std::string> GetActions(); | ||||||
| 
 | 
 | ||||||
|  | @ -79,7 +84,7 @@ namespace Menu | ||||||
|      * 'Use' - action 'gold bar' - target |      * 'Use' - action 'gold bar' - target | ||||||
|      * 'Attack' - action 'Guard  (level-21)' - target |      * 'Attack' - action 'Guard  (level-21)' - target | ||||||
|      * @return std::vector<std::string> array of menu targets |      * @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(); |     std::vector<std::string> GetTargets(); | ||||||
| 
 | 
 | ||||||
|  | @ -92,9 +97,22 @@ namespace Menu | ||||||
|      * 'Use gold bar' - option |      * 'Use gold bar' - option | ||||||
|      * 'Attack Guard  (level-21)' - option |      * 'Attack Guard  (level-21)' - option | ||||||
|      * @return std::vector<std::string> array of menu options |      * @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(); |     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 |      * @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 |      * @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'. |      * 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); |     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 |      * @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 |      * @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) |      * @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); |     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 [1] = Action that was found at index | ||||||
|      * std::string [2] = Target that was found at index |      * std::string [2] = Target that was found at index | ||||||
|      * @see Menu::IndexOf(const std::string& Option) |      * @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); |     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 [1] = Action that was found | ||||||
|      * std::string [2] = Target that was found |      * std::string [2] = Target that was found | ||||||
|      * @see Menu::IndexOf(const std::string& Option) |      * @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); |     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 [1] = Action that was found | ||||||
|      * std::string [2] = Target that was found |      * std::string [2] = Target that was found | ||||||
|      * @see Menu::IndexOf(const std::string& Options) |      * @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); |     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::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 [1] = Action that was found | ||||||
|      * std::string [2] = Target 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) |      * @see Menu::IndexOf(const std::string& Option) | ||||||
|      */ |      */ | ||||||
|     std::vector<std::tuple<std::int32_t, std::string, std::string>> FindOptions(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 [1] = Action that was found | ||||||
|      * std::string [2] = Target that was found |      * std::string [2] = Target that was found | ||||||
|      * @see Menu::IndexOf(const std::string& Options) |      * @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); |     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 |      * @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) |      * @return true if the found index is valid (Index >= 0) | ||||||
|      * @see Menu::IndexOf(const std::string& Option) |      * @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); |     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 |      * @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) |      * @return true if the found index is valid (Index >= 0) | ||||||
|      * @see Menu::IndexOf(const std::string& Options) |      * @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); |     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 |      * @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 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) |      * @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); |     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 |      * @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 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) |      * @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) |      * @see Menu::IndexOf(const std::string& Option) | ||||||
|      */ |      */ | ||||||
|     bool Select(const std::string& Option, bool CloseMenu = true); |     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 |      * @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 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) |      * @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) |      * @see Menu::IndexOf(const std::string& Options) | ||||||
|      */ |      */ | ||||||
|     bool Select(const std::vector<std::string>& Options, bool CloseMenu = true); |     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 Button& B = BUTTON_LEFT); | ||||||
| 
 | 
 | ||||||
|     bool Click(const Point& P, 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::string& Option, const std::string& Target = ""); | ||||||
|     bool Click(const Point& P, const std::vector<std::string>& Options); |     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 Button& Button = BUTTON_LEFT); | ||||||
|     bool Click(const Box& B, const std::string& Option); |     bool Click(const Box& B, const std::string& Option, const std::string& Target = ""); | ||||||
|     bool Click(const Box& B, const std::vector<std::string>& Options); |     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 Button& B = BUTTON_LEFT); | ||||||
|     bool Click(const Convex& C, const std::string& Option); |     bool Click(const Convex& C, const std::string& Option, const std::string& Target = ""); | ||||||
|     bool Click(const Convex& C, const std::vector<std::string>& Options); |     bool Click(const Convex& C, const std::vector<std::string>& Options, const std::string& Target = ""); | ||||||
| 
 | 
 | ||||||
|     bool Scroll(const ScrollDirection& Direction); |     bool Scroll(const ScrollDirection& Direction); | ||||||
|     bool ScrollUntil(const ScrollDirection& Direction, std::int32_t Duration, const std::function<bool()>& Func); |     bool ScrollUntil(const ScrollDirection& Direction, std::int32_t Duration, const std::function<bool()>& Func); | ||||||
|  |  | ||||||
										
											Binary file not shown.
										
									
								
							
		Loading…
	
		Reference in New Issue