/*	EQEMu: Everquest Server Emulator

	Copyright (C) 2001-2016 EQEMu Development Team (http://eqemulator.net)

	This program is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; version 2 of the License.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY except by those people which sell it, which
	are required to give you total support for your newly bought product;
	without even the implied warranty of MERCHANTABILITY or FITNESS FOR
	A PARTICULAR PURPOSE. See the GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program; if not, write to the Free Software
	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

#ifndef COMMON_EQ_CONSTANTS_H
#define COMMON_EQ_CONSTANTS_H

#include "skills.h"
#include "types.h"

namespace AppearanceType {
	constexpr uint32 Die                   = 0; // Causes the client to keel over and zone to bind point (default action)
	constexpr uint32 WhoLevel              = 1; // Level that shows up on /who
	constexpr uint32 MaxHealth             = 2;
	constexpr uint32 Invisibility          = 3; // 0 = Visible, 1 = Invisible
	constexpr uint32 PVP                   = 4; // 0 = Non-PVP, 1 = PVP
	constexpr uint32 Light                 = 5; // Light type emitted by player (lightstone, shiny shield)
	constexpr uint32 Animation             = 14; // 100 = Standing, 102 = Freeze, 105 = Looting, 110 = Sitting, 111 = Crouching, 115 = Lying
	constexpr uint32 Sneak                 = 15; // 0 = Normal, 1 = Sneaking
	constexpr uint32 SpawnID               = 16; // Server -> Client, sets player spawn ID
	constexpr uint32 Health                = 17; // Client->Server, my HP has changed (like regen tic)
	constexpr uint32 Linkdead              = 18; // 0 = Normal, 1 = Linkdead
	constexpr uint32 FlyMode               = 19; // 0 = Off, 1 = Flying, 2 = Levitating, 3 = Water, 4 = Floating, 5 = Levitating while Running
	constexpr uint32 GM                    = 20; // 0 = Non-GM, 1 = GM
	constexpr uint32 Anonymous             = 21; // 0 = Non-Anonymous, 1 = Anonymous, 2 = Roleplaying
	constexpr uint32 GuildID               = 22;
	constexpr uint32 GuildRank             = 23;
	constexpr uint32 AFK                   = 24; // 0 = Non-AFK, 1 = AFK
	constexpr uint32 Pet                   = 25; // Parameter is Entity ID of owner, or 0 for when charm breaks
	constexpr uint32 Summoned              = 27;
	constexpr uint32 Split                 = 28; // 0 = No Split, 1 = Auto Split
	constexpr uint32 Size                  = 29; // Spawn's Size
	constexpr uint32 SetType               = 30; // 0 = PC, 1 = NPC, 2 = Corpse
	constexpr uint32 NPCName               = 31; // Change PC name color to NPC name color
	constexpr uint32 AARank                = 32; // AA Rank Title ID, title in /who?
	constexpr uint32 CancelSneakHide       = 33; // Turns off Hide and Sneak
	constexpr uint32 AreaHealthRegen       = 35; // Guild Hall Regeneration Pool sets to value * 0.001
	constexpr uint32 AreaManaRegen         = 36; // Guild Hall Regeneration Pool sets to value * 0.001
	constexpr uint32 AreaEnduranceRegen    = 37; // Guild Hall Regeneration Pool sets to value * 0.001
	constexpr uint32 FreezeBeneficialBuffs = 38; // Freezes beneficial buff timers for PCs
	constexpr uint32 NPCTintIndex          = 39;
	constexpr uint32 GroupAutoConsent      = 40; // Auto Consent Group
	constexpr uint32 RaidAutoConsent       = 41; // Auto Consent Raid
	constexpr uint32 GuildAutoConsent      = 42; // Auto Consent Guild
	constexpr uint32 ShowHelm              = 43; // 0 = Hide, 1 = Show
	constexpr uint32 DamageState           = 44; // The damage state of a destructible object (0 through 10) plays sound IDs, most only have 2 or 4 states though
	constexpr uint32 EQPlayers             = 45; // EQ Players Update
	constexpr uint32 FindBits              = 46; // Set Find Bits?
	constexpr uint32 TextureType           = 48; // Texture Type?
	constexpr uint32 FacePick              = 49; // Turns off face pick window?
	constexpr uint32 AntiCheat             = 51; // Sent by the client randomly telling the server how long since last action has occurred
	constexpr uint32 GuildShow             = 52;
	constexpr uint32 OfflineMode           = 53; // Offline Mode
}

namespace Animation {
	constexpr uint32 Standing  = 100;
	constexpr uint32 Freeze    = 102;
	constexpr uint32 Looting   = 105;
	constexpr uint32 Sitting   = 110;
	constexpr uint32 Crouching = 111;
	constexpr uint32 Lying     = 115;
}

constexpr int16 RECAST_TYPE_UNLINKED_ITEM = -1;

typedef enum {
	eaStanding = 0,
	eaSitting,		//1
	eaCrouching,	//2
	eaDead,			//3
	eaLooting,		//4
	_eaMaxAppearance
} EmuAppearance;

namespace Chat {
	const uint16 White       = 0;
	const uint16 DimGray     = 1;
	const uint16 Default     = 1;
	const uint16 Green       = 2;
	const uint16 BrightBlue  = 3;
	const uint16 LightBlue   = 4;
	const uint16 Magenta     = 5;
	const uint16 Gray        = 6;
	const uint16 LightGray   = 7;
	const uint16 NPCQuestSay = 10;
	const uint16 DarkGray    = 12;
	const uint16 Red         = 13;
	const uint16 Lime        = 14;
	const uint16 Yellow      = 15;
	const uint16 Blue        = 16;
	const uint16 LightNavy   = 17;
	const uint16 Cyan        = 18;
	const uint16 Black       = 20;

	/**
	 * User colors
	 */
	const uint16 Say              = 256;
	const uint16 Tell             = 257;
	const uint16 Group            = 258;
	const uint16 Guild            = 259;
	const uint16 OOC              = 260;
	const uint16 Auction          = 261;
	const uint16 Shout            = 262;
	const uint16 Emote            = 263;
	const uint16 Spells           = 264;
	const uint16 YouHitOther      = 265;
	const uint16 OtherHitYou      = 266;
	const uint16 YouMissOther     = 267;
	const uint16 OtherMissYou     = 268;
	const uint16 Broadcasts       = 269;
	const uint16 Skills           = 270;
	const uint16 Disciplines      = 271;
	const uint16 Unused1          = 272;
	const uint16 DefaultText      = 273;
	const uint16 Unused2          = 274;
	const uint16 MerchantOffer    = 275;
	const uint16 MerchantExchange = 276;
	const uint16 YourDeath        = 277;
	const uint16 OtherDeath       = 278;
	const uint16 OtherHitOther    = 279;
	const uint16 OtherMissOther   = 280;
	const uint16 Who              = 281;
	const uint16 YellForHelp      = 282;
	const uint16 NonMelee         = 283;
	const uint16 SpellWornOff     = 284;
	const uint16 MoneySplit       = 285;
	const uint16 Loot             = 286;
	const uint16 DiceRoll         = 287;
	const uint16 OtherSpells      = 288;
	const uint16 SpellFailure     = 289;
	const uint16 ChatChannel      = 290;
	const uint16 Chat1            = 291;
	const uint16 Chat2            = 292;
	const uint16 Chat3            = 293;
	const uint16 Chat4            = 294;
	const uint16 Chat5            = 295;
	const uint16 Chat6            = 296;
	const uint16 Chat7            = 297;
	const uint16 Chat8            = 298;
	const uint16 Chat9            = 299;
	const uint16 Chat10           = 300;
	const uint16 MeleeCrit        = 301;
	const uint16 SpellCrit        = 302;
	const uint16 TooFarAway       = 303;
	const uint16 NPCRampage       = 304;
	const uint16 NPCFlurry        = 305;
	const uint16 NPCEnrage        = 306;
	const uint16 EchoSay          = 307;
	const uint16 EchoTell         = 308;
	const uint16 EchoGroup        = 309;
	const uint16 EchoGuild        = 310;
	const uint16 EchoOOC          = 311;
	const uint16 EchoAuction      = 312;
	const uint16 EchoShout        = 313;
	const uint16 EchoEmote        = 314;
	const uint16 EchoChat1        = 315;
	const uint16 EchoChat2        = 316;
	const uint16 EchoChat3        = 317;
	const uint16 EchoChat4        = 318;
	const uint16 EchoChat5        = 319;
	const uint16 EchoChat6        = 320;
	const uint16 EchoChat7        = 321;
	const uint16 EchoChat8        = 322;
	const uint16 EchoChat9        = 323;
	const uint16 EchoChat10       = 324;
	const uint16 DotDamage        = 325;
	const uint16 ItemLink         = 326;
	const uint16 RaidSay          = 327;
	const uint16 MyPet            = 328;
	const uint16 DamageShield     = 329;
	const uint16 LeaderShip       = 330;
	const uint16 PetFlurry        = 331;
	const uint16 PetCritical      = 332;
	const uint16 FocusEffect      = 333;
	const uint16 Experience       = 334;
	const uint16 System           = 335;
	const uint16 PetSpell         = 336;
	const uint16 PetResponse      = 337;
	const uint16 ItemSpeech       = 338;
	const uint16 StrikeThrough    = 339;
	const uint16 Stun             = 340;
};

// generation SQL:
// SELECT CONCAT('    constexpr uint16 ', UPPER(short_name), ' = ' , zoneidnumber, '; // ', long_name) from zone group by zoneidnumber ORDER BY zoneidnumber;
namespace Zones {
	constexpr uint16 QEYNOS = 1; // South Qeynos
	constexpr uint16 QEYNOS2 = 2; // North Qeynos
	constexpr uint16 QRG = 3; // The Surefall Glade
	constexpr uint16 QEYTOQRG = 4; // The Qeynos Hills
	constexpr uint16 HIGHPASS = 5; // Highpass Hold
	constexpr uint16 HIGHKEEP = 6; // High Keep
	constexpr uint16 FREPORTN = 8; // North Freeport
	constexpr uint16 FREPORTW = 9; // West Freeport
	constexpr uint16 FREPORTE = 10; // East Freeport
	constexpr uint16 RUNNYEYE = 11; // The Liberated Citadel of Runnyeye
	constexpr uint16 QEY2HH1 = 12; // The Western Plains of Karana
	constexpr uint16 NORTHKARANA = 13; // The Northern Plains of Karana
	constexpr uint16 SOUTHKARANA = 14; // The Southern Plains of Karana
	constexpr uint16 EASTKARANA = 15; // Eastern Plains of Karana
	constexpr uint16 BEHOLDER = 16; // Gorge of King Xorbb
	constexpr uint16 BLACKBURROW = 17; // Blackburrow
	constexpr uint16 PAW = 18; // The Lair of the Splitpaw
	constexpr uint16 RIVERVALE = 19; // Rivervale
	constexpr uint16 KITHICOR = 20; // Kithicor Forest
	constexpr uint16 COMMONS = 21; // West Commonlands
	constexpr uint16 ECOMMONS = 22; // East Commonlands
	constexpr uint16 ERUDNINT = 23; // The Erudin Palace
	constexpr uint16 ERUDNEXT = 24; // Erudin
	constexpr uint16 NEKTULOS = 25; // The Nektulos Forest
	constexpr uint16 CSHOME = 26; // Sunset Home
	constexpr uint16 LAVASTORM = 27; // The Lavastorm Mountains
	constexpr uint16 NEKTROPOS = 28; // Nektropos
	constexpr uint16 HALAS = 29; // Halas
	constexpr uint16 EVERFROST = 30; // Everfrost Peaks
	constexpr uint16 SOLDUNGA = 31; // Solusek's Eye
	constexpr uint16 SOLDUNGB = 32; // Nagafen's Lair
	constexpr uint16 MISTY = 33; // Misty Thicket
	constexpr uint16 NRO = 34; // Northern Desert of Ro
	constexpr uint16 SRO = 35; // Southern Desert of Ro
	constexpr uint16 BEFALLEN = 36; // Befallen
	constexpr uint16 OASIS = 37; // Oasis of Marr
	constexpr uint16 TOX = 38; // Toxxulia Forest
	constexpr uint16 HOLE = 39; // The Hole
	constexpr uint16 NERIAKA = 40; // Neriak - Foreign Quarter
	constexpr uint16 NERIAKB = 41; // Neriak - Commons
	constexpr uint16 NERIAKC = 42; // Neriak - 3rd Gate
	constexpr uint16 NERIAKD = 43; // Neriak Palace
	constexpr uint16 NAJENA = 44; // Najena
	constexpr uint16 QCAT = 45; // The Qeynos Aqueduct System
	constexpr uint16 INNOTHULE = 46; // Innothule Swamp
	constexpr uint16 FEERROTT = 47; // The Feerrott
	constexpr uint16 CAZICTHULE = 48; // Accursed Temple of CazicThule
	constexpr uint16 OGGOK = 49; // Oggok
	constexpr uint16 RATHEMTN = 50; // The Rathe Mountains
	constexpr uint16 LAKERATHE = 51; // Lake Rathetear
	constexpr uint16 GROBB = 52; // Grobb
	constexpr uint16 AVIAK = 53; // Aviak Village
	constexpr uint16 GFAYDARK = 54; // The Greater Faydark
	constexpr uint16 AKANON = 55; // Ak'Anon
	constexpr uint16 STEAMFONT = 56; // Steamfont Mountains
	constexpr uint16 LFAYDARK = 57; // The Lesser Faydark
	constexpr uint16 CRUSHBONE = 58; // Crushbone
	constexpr uint16 MISTMOORE = 59; // The Castle of Mistmoore
	constexpr uint16 KALADIMA = 60; // South Kaladim
	constexpr uint16 FELWITHEA = 61; // Northern Felwithe
	constexpr uint16 FELWITHEB = 62; // Southern Felwithe
	constexpr uint16 UNREST = 63; // The Estate of Unrest
	constexpr uint16 KEDGE = 64; // Kedge Keep
	constexpr uint16 GUKTOP = 65; // The City of Guk
	constexpr uint16 GUKBOTTOM = 66; // The Ruins of Old Guk
	constexpr uint16 KALADIMB = 67; // North Kaladim
	constexpr uint16 BUTCHER = 68; // Butcherblock Mountains
	constexpr uint16 OOT = 69; // Ocean of Tears
	constexpr uint16 CAULDRON = 70; // Dagnor's Cauldron
	constexpr uint16 AIRPLANE = 71; // The Plane of Sky
	constexpr uint16 FEARPLANE = 72; // The Plane of Fear
	constexpr uint16 PERMAFROST = 73; // The Permafrost Caverns
	constexpr uint16 KERRARIDGE = 74; // Kerra Isle
	constexpr uint16 PAINEEL = 75; // Paineel
	constexpr uint16 HATEPLANE = 76; // Plane of Hate
	constexpr uint16 ARENA = 77; // The Arena
	constexpr uint16 FIELDOFBONE = 78; // The Field of Bone
	constexpr uint16 WARSLIKSWOOD = 79; // The Warsliks Woods
	constexpr uint16 SOLTEMPLE = 80; // The Temple of Solusek Ro
	constexpr uint16 DROGA = 81; // The Temple of Droga
	constexpr uint16 CABWEST = 82; // Cabilis West
	constexpr uint16 SWAMPOFNOHOPE = 83; // The Swamp of No Hope
	constexpr uint16 FIRIONA = 84; // Firiona Vie
	constexpr uint16 LAKEOFILLOMEN = 85; // Lake of Ill Omen
	constexpr uint16 DREADLANDS = 86; // The Dreadlands
	constexpr uint16 BURNINGWOOD = 87; // The Burning Wood
	constexpr uint16 KAESORA = 88; // Kaesora
	constexpr uint16 SEBILIS = 89; // The Ruins of Sebilis
	constexpr uint16 CITYMIST = 90; // The City of Mist
	constexpr uint16 SKYFIRE = 91; // The Skyfire Mountains
	constexpr uint16 FRONTIERMTNS = 92; // Frontier Mountains
	constexpr uint16 OVERTHERE = 93; // The Overthere
	constexpr uint16 EMERALDJUNGLE = 94; // The Emerald Jungle
	constexpr uint16 TRAKANON = 95; // Trakanon's Teeth
	constexpr uint16 TIMOROUS = 96; // Timorous Deep
	constexpr uint16 KURN = 97; // Kurn's Tower
	constexpr uint16 ERUDSXING = 98; // Erud's Crossing
	constexpr uint16 STONEBRUNT = 100; // The Stonebrunt Mountains
	constexpr uint16 WARRENS = 101; // The Warrens
	constexpr uint16 KARNOR = 102; // Karnor's Castle
	constexpr uint16 CHARDOK = 103; // Chardok
	constexpr uint16 DALNIR = 104; // The Crypt of Dalnir
	constexpr uint16 CHARASIS = 105; // The Howling Stones
	constexpr uint16 CABEAST = 106; // Cabilis East
	constexpr uint16 NURGA = 107; // The Mines of Nurga
	constexpr uint16 VEESHAN = 108; // Veeshan's Peak
	constexpr uint16 VEKSAR = 109; // Veksar
	constexpr uint16 ICECLAD = 110; // The Iceclad Ocean
	constexpr uint16 FROZENSHADOW = 111; // The Tower of Frozen Shadow
	constexpr uint16 VELKETOR = 112; // Velketor's Labyrinth
	constexpr uint16 KAEL = 113; // Kael Drakkel
	constexpr uint16 SKYSHRINE = 114; // Skyshrine
	constexpr uint16 THURGADINA = 115; // The City of Thurgadin
	constexpr uint16 EASTWASTES = 116; // Eastern Wastes
	constexpr uint16 COBALTSCAR = 117; // Cobaltscar
	constexpr uint16 GREATDIVIDE = 118; // The Great Divide
	constexpr uint16 WAKENING = 119; // The Wakening Land
	constexpr uint16 WESTWASTES = 120; // The Western Wastes
	constexpr uint16 CRYSTAL = 121; // The Crystal Caverns
	constexpr uint16 NECROPOLIS = 123; // Dragon Necropolis
	constexpr uint16 TEMPLEVEESHAN = 124; // The Temple of Veeshan
	constexpr uint16 SIRENS = 125; // Siren's Grotto
	constexpr uint16 MISCHIEFPLANE = 126; // The Plane of Mischief
	constexpr uint16 GROWTHPLANE = 127; // The Plane of Growth
	constexpr uint16 SLEEPER = 128; // The Sleeper's Tomb
	constexpr uint16 THURGADINB = 129; // Icewell Keep
	constexpr uint16 ERUDSXING2 = 130; // Marauders Mire
	constexpr uint16 SHADOWHAVEN = 150; // Shadow Haven
	constexpr uint16 BAZAAR = 151; // The Bazaar
	constexpr uint16 NEXUS = 152; // Nexus
	constexpr uint16 ECHO_ = 153; // The Echo Caverns
	constexpr uint16 ACRYLIA = 154; // The Acrylia Caverns
	constexpr uint16 SHARVAHL = 155; // The City of Shar Vahl
	constexpr uint16 PALUDAL = 156; // The Paludal Caverns
	constexpr uint16 FUNGUSGROVE = 157; // The Fungus Grove
	constexpr uint16 VEXTHAL = 158; // Vex Thal
	constexpr uint16 SSERU = 159; // Sanctus Seru
	constexpr uint16 KATTA = 160; // Katta Castellum
	constexpr uint16 NETHERBIAN = 161; // Netherbian Lair
	constexpr uint16 SSRATEMPLE = 162; // Ssraeshza Temple
	constexpr uint16 GRIEGSEND = 163; // Grieg's End
	constexpr uint16 THEDEEP = 164; // The Deep
	constexpr uint16 SHADEWEAVER = 165; // Shadeweaver's Thicket
	constexpr uint16 HOLLOWSHADE = 166; // Hollowshade Moor
	constexpr uint16 GRIMLING = 167; // Grimling Forest
	constexpr uint16 MSERU = 168; // Marus Seru
	constexpr uint16 LETALIS = 169; // Mons Letalis
	constexpr uint16 TWILIGHT = 170; // The Twilight Sea
	constexpr uint16 THEGREY = 171; // The Grey
	constexpr uint16 TENEBROUS = 172; // The Tenebrous Mountains
	constexpr uint16 MAIDEN = 173; // The Maiden's Eye
	constexpr uint16 DAWNSHROUD = 174; // The Dawnshroud Peaks
	constexpr uint16 SCARLET = 175; // The Scarlet Desert
	constexpr uint16 UMBRAL = 176; // The Umbral Plains
	constexpr uint16 AKHEVA = 179; // The Akheva Ruins
	constexpr uint16 ARENA2 = 180; // The Arena Two
	constexpr uint16 JAGGEDPINE = 181; // The Jaggedpine Forest
	constexpr uint16 NEDARIA = 182; // Nedaria's Landing
	constexpr uint16 TUTORIAL = 183; // EverQuest Tutorial
	constexpr uint16 LOAD = 184; // Loading Zone
	constexpr uint16 LOAD2 = 185; // New Loading Zone
	constexpr uint16 HATEPLANEB = 186; // The Plane of Hate
	constexpr uint16 SHADOWREST = 187; // Shadowrest
	constexpr uint16 TUTORIALA = 188; // The Mines of Gloomingdeep
	constexpr uint16 TUTORIALB = 189; // The Mines of Gloomingdeep
	constexpr uint16 CLZ = 190; // Loading
	constexpr uint16 CODECAY = 200; // The Crypt of Decay
	constexpr uint16 POJUSTICE = 201; // The Plane of Justice
	constexpr uint16 POKNOWLEDGE = 202; // The Plane of Knowledge
	constexpr uint16 POTRANQUILITY = 203; // The Plane of Tranquility
	constexpr uint16 PONIGHTMARE = 204; // The Plane of Nightmares
	constexpr uint16 PODISEASE = 205; // The Plane of Disease
	constexpr uint16 POINNOVATION = 206; // The Plane of Innovation
	constexpr uint16 POTORMENT = 207; // Torment, the Plane of Pain
	constexpr uint16 POVALOR = 208; // The Plane of Valor
	constexpr uint16 BOTHUNDER = 209; // Bastion of Thunder
	constexpr uint16 POSTORMS = 210; // The Plane of Storms
	constexpr uint16 HOHONORA = 211; // The Halls of Honor
	constexpr uint16 SOLROTOWER = 212; // The Tower of Solusek Ro
	constexpr uint16 POWAR = 213; // Plane of War
	constexpr uint16 POTACTICS = 214; // Drunder, the Fortress of Zek
	constexpr uint16 POAIR = 215; // The Plane of Air
	constexpr uint16 POWATER = 216; // The Plane of Water
	constexpr uint16 POFIRE = 217; // The Plane of Fire
	constexpr uint16 POEARTHA = 218; // The Plane of Earth
	constexpr uint16 POTIMEA = 219; // The Plane of Time
	constexpr uint16 HOHONORB = 220; // The Temple of Marr
	constexpr uint16 NIGHTMAREB = 221; // The Lair of Terris Thule
	constexpr uint16 POEARTHB = 222; // The Plane of Earth
	constexpr uint16 POTIMEB = 223; // The Plane of Time
	constexpr uint16 GUNTHAK = 224; // The Gulf of Gunthak
	constexpr uint16 DULAK = 225; // Dulak's Harbor
	constexpr uint16 TORGIRAN = 226; // The Torgiran Mines
	constexpr uint16 NADOX = 227; // The Crypt of Nadox
	constexpr uint16 HATESFURY = 228; // Hate's Fury
	constexpr uint16 GUKA = 229; // Deepest Guk: Cauldron of Lost Souls
	constexpr uint16 RUJA = 230; // The Rujarkian Hills: Bloodied Quarries
	constexpr uint16 TAKA = 231; // Takish-Hiz: Sunken Library
	constexpr uint16 MIRA = 232; // Miragul's Menagerie: Silent Gallery
	constexpr uint16 MMCA = 233; // Mistmoore's Catacombs: Forlorn Caverns
	constexpr uint16 GUKB = 234; // The Drowning Crypt
	constexpr uint16 RUJB = 235; // The Rujarkian Hills: Halls of War
	constexpr uint16 TAKB = 236; // Takish-Hiz: Shifting Tower
	constexpr uint16 MIRB = 237; // Miragul's Menagerie: Frozen Nightmare
	constexpr uint16 MMCB = 238; // Mistmoore's Catacombs: Dreary Grotto
	constexpr uint16 GUKC = 239; // Deepest Guk: Ancient Aqueducts
	constexpr uint16 RUJC = 240; // The Rujarkian Hills: Wind Bridges
	constexpr uint16 TAKC = 241; // Takish-Hiz: Within the Compact
	constexpr uint16 MIRC = 242; // The Spider Den
	constexpr uint16 MMCC = 243; // Mistmoore's Catacombs: Struggles within the Progeny
	constexpr uint16 GUKD = 244; // The Mushroom Grove
	constexpr uint16 RUJD = 245; // The Rujarkian Hills: Prison Break
	constexpr uint16 TAKD = 246; // Takish-Hiz: Royal Observatory
	constexpr uint16 MIRD = 247; // Miragul's Menagerie: Hushed Banquet
	constexpr uint16 MMCD = 248; // Mistmoore's Catacombs: Chambers of Eternal Affliction
	constexpr uint16 GUKE = 249; // Deepest Guk: The Curse Reborn
	constexpr uint16 RUJE = 250; // The Rujarkian Hills: Drudge Hollows
	constexpr uint16 TAKE = 251; // Takish-Hiz: River of Recollection
	constexpr uint16 MIRE = 252; // The Frosted Halls
	constexpr uint16 MMCE = 253; // Mistmoore's Catacombs: Sepulcher of the Damned
	constexpr uint16 GUKF = 254; // Deepest Guk: Chapel of the Witnesses
	constexpr uint16 RUJF = 255; // The Rujarkian Hills: Fortified Lair of the Taskmasters
	constexpr uint16 TAKF = 256; // Takish-Hiz: Sandfall Corridors
	constexpr uint16 MIRF = 257; // The Forgotten Wastes
	constexpr uint16 MMCF = 258; // Mistmoore's Catacombs: Scion Lair of Fury
	constexpr uint16 GUKG = 259; // The Root Garden
	constexpr uint16 RUJG = 260; // The Rujarkian Hills: Hidden Vale of Deceit
	constexpr uint16 TAKG = 261; // Takish-Hiz: Balancing Chamber
	constexpr uint16 MIRG = 262; // Miragul's Menagerie: Heart of the Menagerie
	constexpr uint16 MMCG = 263; // Mistmoore's Catacombs: Cesspits of Putrescence
	constexpr uint16 GUKH = 264; // Deepest Guk: Accursed Sanctuary
	constexpr uint16 RUJH = 265; // The Rujarkian Hills: Blazing Forge
	constexpr uint16 TAKH = 266; // Takish-Hiz: Sweeping Tides
	constexpr uint16 MIRH = 267; // The Morbid Laboratory
	constexpr uint16 MMCH = 268; // Mistmoore's Catacombs: Aisles of Blood
	constexpr uint16 RUJI = 269; // The Rujarkian Hills: Arena of Chance
	constexpr uint16 TAKI = 270; // Takish-Hiz: Antiquated Palace
	constexpr uint16 MIRI = 271; // The Theater of Imprisoned Horror
	constexpr uint16 MMCI = 272; // Mistmoore's Catacombs: Halls of Sanguinary Rites
	constexpr uint16 RUJJ = 273; // The Rujarkian Hills: Barracks of War
	constexpr uint16 TAKJ = 274; // Takish-Hiz: Prismatic Corridors
	constexpr uint16 MIRJ = 275; // Miragul's Menagerie: Grand Library
	constexpr uint16 MMCJ = 276; // Mistmoore's Catacombs: Infernal Sanctuary
	constexpr uint16 CHARDOKB = 277; // Chardok: The Halls of Betrayal
	constexpr uint16 SOLDUNGC = 278; // The Caverns of Exile
	constexpr uint16 ABYSMAL = 279; // The Abysmal Sea
	constexpr uint16 NATIMBI = 280; // Natimbi, the Broken Shores
	constexpr uint16 QINIMI = 281; // Qinimi, Court of Nihilia
	constexpr uint16 RIWWI = 282; // Riwwi, Coliseum of Games
	constexpr uint16 BARINDU = 283; // Barindu, Hanging Gardens
	constexpr uint16 FERUBI = 284; // Ferubi, Forgotten Temple of Taelosia
	constexpr uint16 SNPOOL = 285; // Sewers of Nihilia, Pool of Sludg
	constexpr uint16 SNLAIR = 286; // Sewers of Nihilia, Lair of Trapp
	constexpr uint16 SNPLANT = 287; // Sewers of Nihilia, Purifying Pla
	constexpr uint16 SNCREMATORY = 288; // Sewers of Nihilia, Emanating Cre
	constexpr uint16 TIPT = 289; // Tipt, Treacherous Crags
	constexpr uint16 VXED = 290; // Vxed, the Crumbling Caverns
	constexpr uint16 YXTTA = 291; // Yxtta, Pulpit of Exiles
	constexpr uint16 UQUA = 292; // Uqua, the Ocean God Chantry
	constexpr uint16 KODTAZ = 293; // Kod'Taz, Broken Trial Grounds
	constexpr uint16 IKKINZ = 294; // Ikkinz, Chambers of Transcendence
	constexpr uint16 QVIC = 295; // Qvic, Prayer Grounds of Calling
	constexpr uint16 INKTUTA = 296; // Inktu'Ta, the Unmasked Chapel
	constexpr uint16 TXEVU = 297; // Txevu, Lair of the Elite
	constexpr uint16 TACVI = 298; // Tacvi, The Broken Temple
	constexpr uint16 QVICB = 299; // Qvic, the Hidden Vault
	constexpr uint16 WALLOFSLAUGHTER = 300; // Wall of Slaughter
	constexpr uint16 BLOODFIELDS = 301; // The Bloodfields
	constexpr uint16 DRANIKSSCAR = 302; // Dranik's Scar
	constexpr uint16 CAUSEWAY = 303; // Nobles' Causeway
	constexpr uint16 CHAMBERSA = 304; // Muramite Proving Grounds
	constexpr uint16 CHAMBERSB = 305; // Muramite Proving Grounds
	constexpr uint16 CHAMBERSC = 306; // Muramite Proving Grounds
	constexpr uint16 CHAMBERSD = 307; // Muramite Proving Grounds
	constexpr uint16 CHAMBERSE = 308; // Muramite Proving Grounds
	constexpr uint16 CHAMBERSF = 309; // Muramite Proving Grounds
	constexpr uint16 PROVINGGROUNDS = 316; // Muramite Proving Grounds
	constexpr uint16 ANGUISH = 317; // Anguish, the Fallen Palace
	constexpr uint16 DRANIKHOLLOWSA = 318; // Dranik's Hollows
	constexpr uint16 DRANIKHOLLOWSB = 319; // Dranik's Hollows
	constexpr uint16 DRANIKHOLLOWSC = 320; // Dranik's Hollows
	constexpr uint16 DRANIKCATACOMBSA = 328; // Catacombs of Dranik
	constexpr uint16 DRANIKCATACOMBSB = 329; // Catacombs of Dranik
	constexpr uint16 DRANIKCATACOMBSC = 330; // Catacombs of Dranik
	constexpr uint16 DRANIKSEWERSA = 331; // Sewers of Dranik
	constexpr uint16 DRANIKSEWERSB = 332; // Sewers of Dranik
	constexpr uint16 DRANIKSEWERSC = 333; // Sewers of Dranik
	constexpr uint16 RIFTSEEKERS = 334; // Riftseekers' Sanctum
	constexpr uint16 HARBINGERS = 335; // Harbinger's Spire
	constexpr uint16 DRANIK = 336; // The Ruined City of Dranik
	constexpr uint16 BROODLANDS = 337; // The Broodlands
	constexpr uint16 STILLMOONA = 338; // Stillmoon Temple
	constexpr uint16 STILLMOONB = 339; // The Ascent
	constexpr uint16 THUNDERCREST = 340; // Thundercrest Isles
	constexpr uint16 DELVEA = 341; // Lavaspinner's Lair
	constexpr uint16 DELVEB = 342; // Tirranun's Delve
	constexpr uint16 THENEST = 343; // The Nest
	constexpr uint16 GUILDLOBBY = 344; // Guild Lobby
	constexpr uint16 GUILDHALL = 345; // Guild Hall
	constexpr uint16 BARTER = 346; // The Barter Hall
	constexpr uint16 ILLSALIN = 347; // Ruins of Illsalin
	constexpr uint16 ILLSALINA = 348; // Illsalin Marketplace
	constexpr uint16 ILLSALINB = 349; // Temple of Korlach
	constexpr uint16 ILLSALINC = 350; // The Nargil Pits
	constexpr uint16 DREADSPIRE = 351; // Dreadspire Keep
	constexpr uint16 DRACHNIDHIVE = 354; // The Hive
	constexpr uint16 DRACHNIDHIVEA = 355; // The Hatchery
	constexpr uint16 DRACHNIDHIVEB = 356; // The Cocoons
	constexpr uint16 DRACHNIDHIVEC = 357; // Queen Sendaii`s Lair
	constexpr uint16 WESTKORLACH = 358; // Stoneroot Falls
	constexpr uint16 WESTKORLACHA = 359; // Prince's Manor
	constexpr uint16 WESTKORLACHB = 360; // Caverns of the Lost
	constexpr uint16 WESTKORLACHC = 361; // Lair of the Korlach
	constexpr uint16 EASTKORLACH = 362; // The Undershore
	constexpr uint16 EASTKORLACHA = 363; // Snarlstone Dens
	constexpr uint16 SHADOWSPINE = 364; // Shadow Spine
	constexpr uint16 CORATHUS = 365; // Corathus Creep
	constexpr uint16 CORATHUSA = 366; // Sporali Caverns
	constexpr uint16 CORATHUSB = 367; // The Corathus Mines
	constexpr uint16 NEKTULOSA = 368; // Shadowed Grove
	constexpr uint16 ARCSTONE = 369; // Arcstone, Isle of Spirits
	constexpr uint16 RELIC = 370; // Relic, the Artifact City
	constexpr uint16 SKYLANCE = 371; // Skylance
	constexpr uint16 DEVASTATION = 372; // The Devastation
	constexpr uint16 DEVASTATIONA = 373; // The Seething Wall
	constexpr uint16 RAGE = 374; // Sverag, Stronghold of Rage
	constexpr uint16 RAGEA = 375; // Razorthorn, Tower of Sullon Zek
	constexpr uint16 TAKISHRUINS = 376; // Ruins of Takish-Hiz
	constexpr uint16 TAKISHRUINSA = 377; // The Root of Ro
	constexpr uint16 ELDDAR = 378; // The Elddar Forest
	constexpr uint16 ELDDARA = 379; // Tunare's Shrine
	constexpr uint16 THEATER = 380; // Theater of Blood
	constexpr uint16 THEATERA = 381; // Deathknell, Tower of Dissonance
	constexpr uint16 FREEPORTEAST = 382; // East Freeport
	constexpr uint16 FREEPORTWEST = 383; // West Freeport
	constexpr uint16 FREEPORTSEWERS = 384; // Freeport Sewers
	constexpr uint16 FREEPORTACADEMY = 385; // Academy of Arcane Sciences
	constexpr uint16 FREEPORTTEMPLE = 386; // Temple of Marr
	constexpr uint16 FREEPORTMILITIA = 387; // Freeport Militia House: My Precious
	constexpr uint16 FREEPORTARENA = 388; // Arena
	constexpr uint16 FREEPORTCITYHALL = 389; // City Hall
	constexpr uint16 FREEPORTTHEATER = 390; // Theater of the Tranquil
	constexpr uint16 FREEPORTHALL = 391; // Hall of Truth: Bounty
	constexpr uint16 NORTHRO = 392; // North Desert of Ro
	constexpr uint16 SOUTHRO = 393; // South Desert of Ro
	constexpr uint16 CRESCENT = 394; // Crescent Reach
	constexpr uint16 MOORS = 395; // Blightfire Moors
	constexpr uint16 STONEHIVE = 396; // Stone Hive
	constexpr uint16 MESA = 397; // Goru`kar Mesa
	constexpr uint16 ROOST = 398; // Blackfeather Roost
	constexpr uint16 STEPPES = 399; // The Steppes
	constexpr uint16 ICEFALL = 400; // Icefall Glacier
	constexpr uint16 VALDEHOLM = 401; // Valdeholm
	constexpr uint16 FROSTCRYPT = 402; // Frostcrypt, Throne of the Shade King
	constexpr uint16 SUNDEROCK = 403; // Sunderock Springs
	constexpr uint16 VERGALID = 404; // Vergalid Mines
	constexpr uint16 DIREWIND = 405; // Direwind Cliffs
	constexpr uint16 ASHENGATE = 406; // Ashengate, Reliquary of the Scale
	constexpr uint16 HIGHPASSHOLD = 407; // Highpass Hold
	constexpr uint16 COMMONLANDS = 408; // The Commonlands
	constexpr uint16 OCEANOFTEARS = 409; // The Ocean of Tears
	constexpr uint16 KITHFOREST = 410; // Kithicor Forest
	constexpr uint16 BEFALLENB = 411; // Befallen
	constexpr uint16 HIGHPASSKEEP = 412; // HighKeep
	constexpr uint16 INNOTHULEB = 413; // The Innothule Swamp
	constexpr uint16 TOXXULIA = 414; // Toxxulia Forest
	constexpr uint16 MISTYTHICKET = 415; // The Misty Thicket
	constexpr uint16 KATTACASTRUM = 416; // Katta Castrum
	constexpr uint16 THALASSIUS = 417; // Thalassius, the Coral Keep
	constexpr uint16 ATIIKI = 418; // Jewel of Atiiki
	constexpr uint16 ZHISZA = 419; // Zhisza, the Shissar Sanctuary
	constexpr uint16 SILYSSAR = 420; // Silyssar, New Chelsith
	constexpr uint16 SOLTERIS = 421; // Solteris, the Throne of Ro
	constexpr uint16 BARREN = 422; // Barren Coast
	constexpr uint16 BURIEDSEA = 423; // The Buried Sea
	constexpr uint16 JARDELSHOOK = 424; // Jardel's Hook
	constexpr uint16 MONKEYROCK = 425; // Monkey Rock
	constexpr uint16 SUNCREST = 426; // Suncrest Isle
	constexpr uint16 DEADBONE = 427; // Deadbone Reef
	constexpr uint16 BLACKSAIL = 428; // Blacksail Folly
	constexpr uint16 MAIDENSGRAVE = 429; // Maiden's Grave
	constexpr uint16 REDFEATHER = 430; // Redfeather Isle
	constexpr uint16 SHIPMVP = 431; // The Open Sea
	constexpr uint16 SHIPMVU = 432; // The Open Sea
	constexpr uint16 SHIPPVU = 433; // The Open Sea
	constexpr uint16 SHIPUVU = 434; // The Open Sea
	constexpr uint16 SHIPMVM = 435; // The Open Sea
	constexpr uint16 MECHANOTUS = 436; // Fortress Mechanotus
	constexpr uint16 MANSION = 437; // Meldrath's Majestic Mansion
	constexpr uint16 STEAMFACTORY = 438; // The Steam Factory
	constexpr uint16 SHIPWORKSHOP = 439; // S.H.I.P. Workshop
	constexpr uint16 GYROSPIREB = 440; // Gyrospire Beza
	constexpr uint16 GYROSPIREZ = 441; // Gyrospire Zeka
	constexpr uint16 DRAGONSCALE = 442; // Dragonscale Hills
	constexpr uint16 LOPINGPLAINS = 443; // Loping Plains
	constexpr uint16 HILLSOFSHADE = 444; // Hills of Shade
	constexpr uint16 BLOODMOON = 445; // Bloodmoon Keep
	constexpr uint16 CRYSTALLOS = 446; // Crystallos, Lair of the Awakened
	constexpr uint16 GUARDIAN = 447; // The Mechamatic Guardian
	constexpr uint16 STEAMFONTMTS = 448; // The Steamfont Mountains
	constexpr uint16 CRYPTOFSHADE = 449; // Crypt of Shade
	constexpr uint16 DRAGONSCALEB = 451; // Deepscar's Den
	constexpr uint16 OLDFIELDOFBONE = 452; // Field of Scale
	constexpr uint16 OLDKAESORAA = 453; // Kaesora Library
	constexpr uint16 OLDKAESORAB = 454; // Kaesora Hatchery
	constexpr uint16 OLDKURN = 455; // Kurn's Tower
	constexpr uint16 OLDKITHICOR = 456; // Bloody Kithicor
	constexpr uint16 OLDCOMMONS = 457; // Old Commonlands
	constexpr uint16 OLDHIGHPASS = 458; // Highpass Hold
	constexpr uint16 THEVOIDA = 459; // The Void
	constexpr uint16 THEVOIDB = 460; // The Void
	constexpr uint16 THEVOIDC = 461; // The Void
	constexpr uint16 THEVOIDD = 462; // The Void
	constexpr uint16 THEVOIDE = 463; // The Void
	constexpr uint16 THEVOIDF = 464; // The Void
	constexpr uint16 THEVOIDG = 465; // The Void
	constexpr uint16 OCEANGREENHILLS = 466; // Oceangreen Hills
	constexpr uint16 OCEANGREENVILLAGE = 467; // Oceangreen Village
	constexpr uint16 OLDBLACKBURROW = 468; // BlackBurrow
	constexpr uint16 BERTOXTEMPLE = 469; // Temple of Bertoxxulous
	constexpr uint16 DISCORD = 470; // Korafax, Home of the Riders
	constexpr uint16 DISCORDTOWER = 471; // Citadel of the Worldslayer
	constexpr uint16 OLDBLOODFIELD = 472; // Old Bloodfields
	constexpr uint16 PRECIPICEOFWAR = 473; // The Precipice of War
	constexpr uint16 OLDDRANIK = 474; // City of Dranik
	constexpr uint16 TOSKIRAKK = 475; // Toskirakk
	constexpr uint16 KORASCIAN = 476; // Korascian Warrens
	constexpr uint16 RATHECHAMBER = 477; // Rathe Council Chamber
	constexpr uint16 BRELLSREST = 480; // Brell's Rest
	constexpr uint16 FUNGALFOREST = 481; // Fungal Forest
	constexpr uint16 UNDERQUARRY = 482; // The Underquarry
	constexpr uint16 COOLINGCHAMBER = 483; // The Cooling Chamber
	constexpr uint16 SHININGCITY = 484; // Kernagir, the Shining City
	constexpr uint16 ARTHICREX = 485; // Arthicrex
	constexpr uint16 FOUNDATION = 486; // The Foundation
	constexpr uint16 LICHENCREEP = 487; // Lichen Creep
	constexpr uint16 PELLUCID = 488; // Pellucid Grotto
	constexpr uint16 STONESNAKE = 489; // Volska's Husk
	constexpr uint16 BRELLSTEMPLE = 490; // Brell's Temple
	constexpr uint16 CONVORTEUM = 491; // The Convorteum
	constexpr uint16 BRELLSARENA = 492; // Brell's Arena
	constexpr uint16 WEDDINGCHAPEL = 493; // Wedding Chapel
	constexpr uint16 WEDDINGCHAPELDARK = 494; // Wedding Chapel
	constexpr uint16 DRAGONCRYPT = 495; // Lair of the Risen
	constexpr uint16 FEERROTT2 = 700; // The Feerrott
	constexpr uint16 THULEHOUSE1 = 701; // House of Thule
	constexpr uint16 THULEHOUSE2 = 702; // House of Thule, Upper Floors
	constexpr uint16 HOUSEGARDEN = 703; // The Grounds
	constexpr uint16 THULELIBRARY = 704; // The Library
	constexpr uint16 WELL = 705; // The Well
	constexpr uint16 FALLEN = 706; // Erudin Burning
	constexpr uint16 MORELLCASTLE = 707; // Morell's Castle
	constexpr uint16 SOMNIUM = 708; // Sanctum Somnium
	constexpr uint16 ALKABORMARE = 709; // Al'Kabor's Nightmare
	constexpr uint16 MIRAGULMARE = 710; // Miragul's Nightmare
	constexpr uint16 THULEDREAM = 711; // Fear Itself
	constexpr uint16 NEIGHBORHOOD = 712; // Sunrise Hills
	constexpr uint16 ARGATH = 724; // Argath, Bastion of Illdaera
	constexpr uint16 ARELIS = 725; // Valley of Lunanyn
	constexpr uint16 SARITHCITY = 726; // Sarith, City of Tides
	constexpr uint16 RUBAK = 727; // Rubak Oseka, Temple of the Sea
	constexpr uint16 BEASTDOMAIN = 728; // Beasts' Domain
	constexpr uint16 RESPLENDENT = 729; // The Resplendent Temple
	constexpr uint16 PILLARSALRA = 730; // Pillars of Alra
	constexpr uint16 WINDSONG = 731; // Windsong Sanctuary
	constexpr uint16 CITYOFBRONZE = 732; // Erillion, City of Bronze
	constexpr uint16 SEPULCHER = 733; // Sepulcher of Order
	constexpr uint16 EASTSEPULCHER = 734; // Sepulcher East
	constexpr uint16 WESTSEPULCHER = 735; // Sepulcher West
	constexpr uint16 SHARDSLANDING = 752; // Shard's Landing
	constexpr uint16 XORBB = 753; // Valley of King Xorbb
	constexpr uint16 KAELSHARD = 754; // Kael Drakkel: The King's Madness
	constexpr uint16 EASTWASTESSHARD = 755; // East Wastes: Zeixshi-Kar's Awakening
	constexpr uint16 CRYSTALSHARD = 756; // The Crystal Caverns: Fragment of Fear
	constexpr uint16 BREEDINGGROUNDS = 757; // The Breeding Grounds
	constexpr uint16 EVILTREE = 758; // Evantil, the Vile Oak
	constexpr uint16 GRELLETH = 759; // Grelleth's Palace, the Chateau of Filth
	constexpr uint16 CHAPTERHOUSE = 760; // Chapterhouse of the Fallen
	constexpr uint16 ARTTEST = 996; // Art Testing Domain
	constexpr uint16 FHALLS = 998; // The Forgotten Halls
	constexpr uint16 APPRENTICE = 999; // Designer Apprentice
}

namespace Language {
	constexpr uint8 CommonTongue  = 0;
	constexpr uint8 Barbarian     = 1;
	constexpr uint8 Erudian       = 2;
	constexpr uint8 Elvish        = 3;
	constexpr uint8 DarkElvish    = 4;
	constexpr uint8 Dwarvish      = 5;
	constexpr uint8 Troll         = 6;
	constexpr uint8 Ogre          = 7;
	constexpr uint8 Gnomish       = 8;
	constexpr uint8 Halfling      = 9;
	constexpr uint8 ThievesCant   = 10;
	constexpr uint8 OldErudian    = 11;
	constexpr uint8 ElderElvish   = 12;
	constexpr uint8 Froglok       = 13;
	constexpr uint8 Goblin        = 14;
	constexpr uint8 Gnoll         = 15;
	constexpr uint8 CombineTongue = 16;
	constexpr uint8 ElderTeirDal  = 17;
	constexpr uint8 Lizardman     = 18;
	constexpr uint8 Orcish        = 19;
	constexpr uint8 Faerie        = 20;
	constexpr uint8 Dragon        = 21;
	constexpr uint8 ElderDragon   = 22;
	constexpr uint8 DarkSpeech    = 23;
	constexpr uint8 VahShir       = 24;
	constexpr uint8 Alaran        = 25;
	constexpr uint8 Hadal         = 26;
	constexpr uint8 Unknown27     = 27;

	constexpr uint8 MaxValue = 100;
}
namespace PetInfoType {
	constexpr int Current   = 0;
	constexpr int Suspended = 1;
}

namespace BuffEffectType {
	constexpr uint8 None        = 0;
	constexpr uint8 Buff        = 2;
	constexpr uint8 InverseBuff = 4;
}

namespace AlternateCurrencyMode {
	constexpr uint32 Update   = 7;
	constexpr uint32 Populate = 8;
}

typedef enum {
	FilterNone = 0,
	FilterGuildChat = 1,		//0=hide, 1=show
	FilterSocials = 2,			//0=hide, 1=show
	FilterGroupChat = 3,		//0=hide, 1=show
	FilterShouts = 4,			//0=hide, 1=show
	FilterAuctions = 5,			//0=hide, 1=show
	FilterOOC = 6,				//0=hide, 1=show
	FilterBadWords = 7,			//0=hide, 1=show
	FilterPCSpells = 8,			//0=show, 1=hide, 2=group only
	FilterNPCSpells = 9,		//0=show, 1=hide
	FilterBardSongs = 10,		//0=show, 1=mine only, 2=group only, 3=hide
	FilterSpellCrits = 11,		//0=show, 1=mine only, 2=hide
	FilterMeleeCrits = 12,		//0=show, 1=hide
	FilterSpellDamage = 13,		//0=show, 1=mine only, 2=hide
	FilterMyMisses = 14,		//0=hide, 1=show
	FilterOthersMiss = 15,		//0=hide, 1=show
	FilterOthersHit = 16,		//0=hide, 1=show
	FilterMissedMe = 17,		//0=hide, 1=show
	FilterDamageShields = 18,	//0=show, 1=hide
	FilterDOT = 19,				//0=show, 1=hide
	FilterPetHits = 20,			//0=show, 1=hide
	FilterPetMisses = 21,		//0=show, 1=hide
	FilterFocusEffects = 22,	//0=show, 1=hide
	FilterPetSpells = 23,		//0=show, 1=hide
	FilterHealOverTime = 24,	//0=show, 1=mine only, 2=hide
	FilterItemSpeech = 25,		//0=show, 1=hide // RoF2 Confirmed
	FilterStrikethrough = 26,	//0=show, 1=hide // RoF2 Confirmed
	FilterStuns = 27,			//0=show, 1=hide // RoF2 Confirmed
	FilterBardSongsOnPets = 28,	//0=show, 1=hide // RoF2 Confirmed
	_FilterCount
} eqFilterType;

typedef enum {
	FilterHide,
	FilterShow,
	FilterShowGroupOnly,
	FilterShowSelfOnly
} eqFilterMode;

#define STAT_STR                 0
#define STAT_STA                 1
#define STAT_AGI                 2
#define STAT_DEX                 3
#define STAT_INT                 4
#define STAT_WIS                 5
#define STAT_CHA                 6
#define STAT_MAGIC               7
#define STAT_COLD                8
#define STAT_FIRE                9
#define STAT_POISON              10
#define STAT_DISEASE             11
#define STAT_MANA                12
#define STAT_HP                  13
#define STAT_AC                  14
#define STAT_ENDURANCE           15
#define STAT_ATTACK              16
#define STAT_HP_REGEN            17
#define STAT_MANA_REGEN          18
#define STAT_HASTE               19
#define STAT_DAMAGE_SHIELD       20
#define STAT_DS_MITIGATION       22
#define	STAT_HEAL_AMOUNT         23
#define	STAT_SPELL_DAMAGE        24
#define	STAT_CLAIRVOYANCE        25
#define	STAT_HEROIC_AGILITY      26
#define	STAT_HEROIC_CHARISMA     27
#define	STAT_HEROIC_DEXTERITY    28
#define	STAT_HEROIC_INTELLIGENCE 29
#define	STAT_HEROIC_STAMINA      30
#define	STAT_HEROIC_STRENGTH     31
#define	STAT_HEROIC_WISDOM       32
#define	STAT_BASH                33
#define	STAT_BACKSTAB            34
#define	STAT_DRAGON_PUNCH        35
#define	STAT_EAGLE_STRIKE        36
#define	STAT_FLYING_KICK         37
#define STAT_KICK                38
#define	STAT_ROUND_KICK          39
#define STAT_TIGER_CLAW          40
#define STAT_FRENZY              41

static const uint8 DamageTypeSomething	= 0x1C;	//0x1c is something...
static const uint8 DamageTypeFalling	= 0xFC;
static const uint8 DamageTypeSpell		= 0xE7;
static const uint8 DamageTypeUnknown	= 0xFF;

/*
**	Skill damage types
**
**	(indexed by 'Skill' of SkillUseTypes)
*/
static const uint8 SkillDamageTypes[EQ::skills::HIGHEST_SKILL + 1] = // change to _SkillServerArraySize once activated
{
/*1HBlunt*/					0,
/*1HSlashing*/				1,
/*2HBlunt*/					0,
/*2HSlashing*/				1,
/*Abjuration*/				DamageTypeSpell,
/*Alteration*/				DamageTypeSpell,
/*ApplyPoison*/				DamageTypeUnknown,
/*Archery*/					7,
/*Backstab*/				8,
/*BindWound*/				DamageTypeUnknown,
/*Bash*/					10,
/*Block*/					DamageTypeUnknown,
/*BrassInstruments*/		DamageTypeSpell,
/*Channeling*/				DamageTypeUnknown,
/*Conjuration*/				DamageTypeSpell,
/*Defense*/					DamageTypeUnknown,
/*Disarm*/					DamageTypeUnknown,
/*DisarmTraps*/				DamageTypeUnknown,
/*Divination*/				DamageTypeSpell,
/*Dodge*/					DamageTypeUnknown,
/*DoubleAttack*/			DamageTypeUnknown,
/*DragonPunch*/				21,
/*DualWield*/				DamageTypeUnknown,
/*EagleStrike*/				23,
/*Evocation*/				DamageTypeSpell,
/*FeignDeath*/				4,
/*FlyingKick*/				30,
/*Forage*/					DamageTypeUnknown,
/*HandtoHand*/				4,
/*Hide*/					DamageTypeUnknown,
/*Kick*/					30,
/*Meditate*/				DamageTypeUnknown,
/*Mend*/					DamageTypeUnknown,
/*Offense*/					DamageTypeUnknown,
/*Parry*/					DamageTypeUnknown,
/*PickLock*/				DamageTypeUnknown,
/*1HPiercing*/				36,
/*Riposte*/					DamageTypeUnknown,
/*RoundKick*/				30,
/*SafeFall*/				DamageTypeUnknown,
/*SsenseHeading*/			DamageTypeUnknown,
/*Singing*/					DamageTypeSpell,
/*Sneak*/					DamageTypeUnknown,
/*SpecializeAbjure*/		DamageTypeUnknown,
/*SpecializeAlteration*/	DamageTypeUnknown,
/*SpecializeConjuration*/	DamageTypeUnknown,
/*SpecializeDivination*/	DamageTypeUnknown,
/*SpecializeEvocation*/		DamageTypeUnknown,
/*PickPockets*/				DamageTypeUnknown,
/*StringedInstruments*/		DamageTypeSpell,
/*Swimming*/				DamageTypeUnknown,
/*Throwing*/				51,
/*TigerClaw*/				23,
/*Tracking*/				DamageTypeUnknown,
/*WindInstruments*/			DamageTypeSpell,
/*Fishing*/					DamageTypeUnknown,
/*MakePoison*/				DamageTypeUnknown,
/*Tinkering*/				DamageTypeUnknown,
/*Research*/				DamageTypeUnknown,
/*Alchemy*/					DamageTypeUnknown,
/*Baking*/					DamageTypeUnknown,
/*Tailoring*/				DamageTypeUnknown,
/*SenseTraps*/				DamageTypeUnknown,
/*Blacksmithing*/			DamageTypeUnknown,
/*Fletching*/				DamageTypeUnknown,
/*Brewing*/					DamageTypeUnknown,
/*AlcoholTolerance*/		DamageTypeUnknown,
/*Begging*/					DamageTypeUnknown,
/*JewelryMaking*/			DamageTypeUnknown,
/*Pottery*/					DamageTypeUnknown,
/*PercussionInstruments*/	DamageTypeSpell,
/*Intimidation*/			DamageTypeUnknown,
/*Berserking*/				DamageTypeUnknown,
/*Taunt*/					DamageTypeUnknown,
/*Frenzy*/					74,
/*RemoveTrap*/				DamageTypeUnknown,	// Needs research (set for SenseTrap value)
/*TripleAttack*/			DamageTypeUnknown,	// Needs research (set for DoubleAttack value)
/*2HPiercing*/				36					// Needs research (set for 1HPiercing value - similar to slash/blunt)
};

/*
// Used for worn NPC inventory tracking. NPCs don't use
// augments, so only the basic slots need to be kept track of.
#define MAX_WORN_INVENTORY	22
*/

/*
**	Inventory Slot Equipment Enum
**	Mostly used for third-party tools to reference inventory slots
**
**	[pre-HoT]
**	NOTE: Numbering for personal inventory goes top to bottom, then left to right
**	It's the opposite for inside bags: left to right, then top to bottom
**	Example:
**	Inventory:	Containers:
**	1	5		1	2
**	2	6		3	4
**	3	7		5	6
**	4	8		7	8
**	-	-		9	10
**
**	[HoT and Higher]
**	Note: Numbering for inventory and bags goes left to right, then top to bottom
**	Example:
**	Inventory:	Containers:
**	1	2		1	2
**	3	4		3	4
**	5	6		5	6
**	7	8		7	8
**	9	10		9	10
**	-	-		11	12	[Note: Additional slots are only available in RoF and higher]
**
*/

#define INVALID_INDEX	-1

static const uint32 MAX_SPELL_DB_ID_VAL = 65535;

static const uint32 DB_FACTION_GEM_CHOPPERS = 255;
static const uint32 DB_FACTION_HERETICS = 265;
static const uint32 DB_FACTION_KING_AKANON = 333;

enum ChatChannelNames : uint16
{
	ChatChannel_Guild = 0,
	ChatChannel_Group = 2,
	ChatChannel_Shout = 3,
	ChatChannel_Auction = 4,
	ChatChannel_OOC = 5,
	ChatChannel_Broadcast = 6,
	ChatChannel_Tell = 7,
	ChatChannel_Say = 8,
	ChatChannel_Petition = 10,
	ChatChannel_GMSAY = 11,
	ChatChannel_TellEcho = 14,
	ChatChannel_Raid = 15,

	ChatChannel_UNKNOWN_Guild = 17,
	ChatChannel_UNKNOWN_GMSAY = 18,
	ChatChannel_UCSRelay = 20,
	ChatChannel_Emotes = 22
};

namespace ZoneBlockedSpellTypes {
	const uint8 ZoneWide = 1;
	const uint8 Region   = 2;
};

enum StartZoneIndex {
    Odus = 0,
    Qeynos,
    Halas,
    Rivervale,
    Freeport,
    Neriak,
    Grobb,
    Oggok,
    Kaladim,
    GreaterFaydark,
    Felwithe,
    Akanon,
    Cabilis,
    SharVahl,
    RatheMtn
};

enum FVNoDropFlagRule
{
	Disabled = 0,
	Enabled = 1,
	AdminOnly = 2
};

enum Anonymity : uint8
{
	NotAnonymous,
	Anonymous,
	Roleplaying
};

enum ZoningMessage : int8 {
	ZoneNoMessage    = 0,
	ZoneSuccess      = 1,
	ZoneNotReady     = -1,
	ZoneValidPC      = -2,
	ZoneStoryZone    = -3,
	ZoneNoExpansion  = -6,
	ZoneNoExperience = -7
};

enum class RecipeCountType : uint8
{
	Component,
	Container,
	Fail,
	Salvage,
	Success
};

#define ALT_CURRENCY_ID_RADIANT 4
#define ALT_CURRENCY_ID_EBON 5

enum ResurrectionActions
{
	Decline,
	Accept
};

enum ScribeSpellActions
{
	Scribe,
	Memorize,
	Unmemorize
};

enum SpellTimeRestrictions
{
	NoRestriction,
	Day,
	Night
};

enum MoneyTypes
{
	Copper,
	Silver,
	Gold,
	Platinum
};

enum MoneySubtypes
{
	Personal,
	Bank,
	Cursor,
	SharedBank // Platinum Only
};

namespace RaidLootType {
	constexpr uint32 LeaderOnly                = 1;
	constexpr uint32 LeaderAndGroupLeadersOnly = 2;
	constexpr uint32 LeaderSelected            = 3;
	constexpr uint32 EntireRaid                = 4;
}

namespace LeadershipAbilitySlot {
	constexpr uint16 HealthOfTargetsTarget = 14;
}

enum ExpSource
{
	Quest,
	GM,
	Kill,
	Death,
	Resurrection,
	LDoNChest,
	Task,
	Sacrifice
};

#define PARCEL_SEND_ITEMS    0
#define PARCEL_SEND_MONEY    1
#define PARCEL_MONEY_ITEM_ID 99990 // item id of money
#define PARCEL_LIMIT         5
#define PARCEL_BEGIN_SLOT    1

namespace DoorType {
	constexpr uint32 BuyerStall = 155;
}

#endif /*COMMON_EQ_CONSTANTS_H*/
