AlpacaLibrary/Include/Core/Globals.hpp

445 lines
22 KiB
C++

#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[5] = { 28, 30, 32, 34, 36 }; // 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