/** * Ashita - Copyright (c) 2014 - 2017 atom0s [atom0s@live.com] * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to * Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. * * By using Ashita, you agree to the above license and its terms. * * Attribution - You must give appropriate credit, provide a link to the license and indicate if changes were * made. You must do so in any reasonable manner, but not in any way that suggests the licensor * endorses you or your use. * * Non-Commercial - You may not use the material (Ashita) for commercial purposes. * * No-Derivatives - If you remix, transform, or build upon the material (Ashita), you may not distribute the * modified material. You are, however, allowed to submit the modified works back to the original * Ashita project in attempt to have it added to the original project. * * You may not apply legal terms or technological measures that legally restrict others * from doing anything the license permits. * * No warranties are given. */ #ifndef __ASHITA_AS_FFXI_ENUMS_H_INCLUDED__ #define __ASHITA_AS_FFXI_ENUMS_H_INCLUDED__ #if defined (_MSC_VER) && (_MSC_VER >= 1020) #pragma once #endif /** * Name Flag Definitions */ #define FLAG_INEVENT 0x00000002 #define FLAG_CHOCOBO 0x00000040 #define FLAG_WALLHACK 0x00000200 #define FLAG_INVITE 0x00000800 #define FLAG_ANON 0x00001000 #define FLAG_UNKNOWN 0x00002000 #define FLAG_AWAY 0x00004000 #define FLAG_PLAYONLINE 0x00010000 #define FLAG_LINKSHELL 0x00020000 #define FLAG_DC 0x00040000 #define FLAG_GM 0x04000000 #define FLAG_GM_SUPPORT 0x04000000 #define FLAG_GM_SENIOR 0x05000000 #define FLAG_GM_LEAD 0x06000000 #define FLAG_GM_PRODUCER 0x07000000 #define FLAG_BAZAAR 0x80000000 namespace Ashita { namespace FFXI { namespace Enums { //////////////////////////////////////////////////////////////////////////////////////////////////// // // Equipment / Inventory Related Enumerations // //////////////////////////////////////////////////////////////////////////////////////////////////// /** * Containers Enumeration */ enum class Containers : uint32_t { Inventory = 0, Safe = 1, Storage = 2, Temporary = 3, Locker = 4, Satchel = 5, Sack = 6, Case = 7, Wardrobe = 8, Safe2 = 9, Wardrobe2 = 10, Wardrobe3 = 11, Wardrobe4 = 12, ContainerMax = 13 }; /** * Equipment Slots Enumeration */ enum class EquipmentSlots : uint32_t { Main = 0, Sub, Range, Ammo, Head, Body, Hands, Legs, Feet, Waist, Ear1, Ear2, Ring1, Ring2, Back, EquipmentSlotMax = 16 }; /** * Treasure Status Enumeration */ enum class TreasureStatus { None = 0, Pass, Lot }; //////////////////////////////////////////////////////////////////////////////////////////////////// // // Entity Related Enumerations // //////////////////////////////////////////////////////////////////////////////////////////////////// /** * Entity Types Enumeration */ enum class EntityTypes : uint32_t { Player = 0, // Player Entities Npc1 = 1, // NPC Entities (Town Folk, etc.) Npc2 = 2, // NPC Entities (Home Points, Moogles, Coffers, Town Folk, etc.) Npc3 = 3, // NPC Entities (Doors, Lights, Unique Objects, Bridges, etc.) Elevator = 4, // Elevator Entities Airship = 5, // Airship / Boat Entities }; /** * Entity Spawn Flags Enumeration */ enum class EntitySpawnFlags : uint32_t { Player = 0x0001, // Entity is a player. Npc = 0x0002, // Entity is an NPC. PartyMember = 0x0004, // Entity is a party member. AllianceMember = 0x0008, // Entity is an alliance member. Monster = 0x0010, // Entity is a monster. Object = 0x0020, // Entity is an object. LocalPlayer = 0x0200, // Entity is the local player. }; /** * Entity Hair Enumeration */ enum class EntityHair { Hair1A = 0, Hair1B, Hair2A, Hair2B, Hair3A, Hair3B, Hair4A, Hair4B, Hair5A, Hair5B, Hair6A, Hair6B, Hair7A, Hair7B, Hair8A, Hair8B, // Non-Player Hair Styles Fomar = 29, Mannequin = 30, }; /** * Entity Race Enumeration */ enum class EntityRace { Invalid = 0, HumeMale, HumeFemale, ElvaanMale, ElvaanFemale, TarutaruMale, TarutaruFemale, Mithra, Galka, // Non-Player Races MithraChild = 29, HumeChildFemale = 30, HumeChildMale = 31, GoldChocobo = 32, BlackChocobo = 33, BlueChocobo = 34, RedChocobo = 35, GreenChocobo = 36 }; //////////////////////////////////////////////////////////////////////////////////////////////////// // // Player Related Enumerations // //////////////////////////////////////////////////////////////////////////////////////////////////// /** * Jobs Enumeration */ enum class Jobs : uint32_t { None = 0, Warrior = 1, Monk = 2, WhiteMage = 3, BlackMage = 4, RedMage = 5, Thief = 6, Paladin = 7, DarkKnight = 8, Beastmaster = 9, Bard = 10, Ranger = 11, Samurai = 12, Ninja = 13, Dragoon = 14, Summoner = 15, BlueMage = 16, Corsair = 17, Puppetmaster = 18, Dancer = 19, Scholar = 20, Geomancer = 21, RuneFencer = 22 }; /** * Login Status Enumeration */ enum class LoginStatus { LoginScreen = 0, Loading = 1, LoggedIn = 2 }; /** * Craft Rank Enumeration */ enum class CraftRank { Amateur = 0, Recruit, Initiate, Novice, Apprentice, Journeyman, Craftsman, Artisan, Adept, Veteran }; /** * Skill Types Enumeration */ enum class SkillTypes : uint32_t { // Weapon Skills HandToHand = 1, Dagger = 2, Sword = 3, GreatSword = 4, Axe = 5, GreatAxe = 6, Scythe = 7, Polarm = 8, Katana = 9, GreatKatana = 10, Club = 11, Staff = 12, // Combat Skills Archery = 25, Marksmanship = 26, Throwing = 27, Guard = 28, Evasion = 29, Shield = 30, Parry = 31, Divine = 32, Healing = 33, Enhancing = 34, Enfeebling = 35, Elemental = 36, Dark = 37, Summoning = 38, Ninjutsu = 39, Singing = 40, String = 41, Wind = 42, BlueMagic = 43, // Crafting Skills Fishing = 48, Woodworking = 49, Smithing = 50, Goldsmithing = 51, Clothcraft = 52, Leathercraft = 53, Bonecraft = 54, Alchemy = 55, Cooking = 56, Synergy = 57, ChocoboDigging = 58, }; /** * Player Nation Id */ enum class Nation { SandOria, Bastok, Windurst }; //////////////////////////////////////////////////////////////////////////////////////////////////// // // Resources Related Enumerations // //////////////////////////////////////////////////////////////////////////////////////////////////// /** * Equipment Slot Mask Enumeration */ enum class EquipmentSlotMask { None = 0x0000, Main = 0x0001, Sub = 0x0002, Range = 0x0004, Ammo = 0x0008, Head = 0x0010, Body = 0x0020, Hands = 0x0040, Legs = 0x0080, Feet = 0x0100, Neck = 0x0200, Waist = 0x0400, LEar = 0x0800, REar = 0x1000, LRing = 0x2000, RRing = 0x4000, Back = 0x8000, // Slot Groups Ears = LEar | REar, Rings = LRing | RRing, // All Slots All = 0xFFFF }; /** * Item Flags Enumeration */ enum class ItemFlags : uint32_t { None = 0x0000, WallHanging = 0x0001, Flag1 = 0x0002, Flag2 = 0x0004, Flag3 = 0x0008, DeliveryInner = 0x0010, Inscribable = 0x0020, NoAuction = 0x0040, Scroll = 0x0080, Linkshell = 0x0100, CanUse = 0x0200, CanTradeNpc = 0x0400, CanEquip = 0x0800, NoSale = 0x1000, NoDelivery = 0x2000, NoTrade = 0x4000, Rare = 0x8000, Exclusive = NoAuction | NoDelivery | NoTrade, Nothing = Linkshell | NoSale | Exclusive | Rare }; /** * Item Type Enumeration */ enum class ItemType : uint32_t { None = 0x0000, Item = 0x0001, QuestItem = 0x0002, Fish = 0x0003, Weapon = 0x0004, Armor = 0x0005, Linkshell = 0x0006, UsableItem = 0x0007, Crystal = 0x0008, Currency = 0x0009, Furnishing = 0x000A, Plant = 0x000B, Flowerpot = 0x000C, PuppetItem = 0x000D, Mannequin = 0x000E, Book = 0x000F, RacingForm = 0x0010, BettingSlip = 0x0011, SoulPlate = 0x0012, Reflector = 0x0013, Logs = 0x0014, LotteryTicket = 0x0015, TabulaM = 0x0016, TabulaR = 0x0017, Voucher = 0x0018, Rune = 0x0019, Evolith = 0x001A, StorageSlip = 0x001B, Type1 = 0x001C }; /** * Job Mask Enumeration */ enum class JobMask : uint32_t { None = 0x00000000, WAR = 0x00000002, MNK = 0x00000004, WHM = 0x00000008, BLM = 0x00000010, RDM = 0x00000020, THF = 0x00000040, PLD = 0x00000080, DRK = 0x00000100, BST = 0x00000200, BRD = 0x00000400, RNG = 0x00000800, SAM = 0x00001000, NIN = 0x00002000, DRG = 0x00004000, SMN = 0x00008000, BLU = 0x00010000, COR = 0x00020000, PUP = 0x00040000, DNC = 0x00080000, SCH = 0x00100000, GEO = 0x00200000, RUN = 0x00400000, MON = 0x00800000, JOB24 = 0x01000000, JOB25 = 0x02000000, JOB26 = 0x04000000, JOB27 = 0x08000000, JOB28 = 0x10000000, JOB29 = 0x20000000, JOB30 = 0x40000000, JOB31 = 0x80000000, AllJobs = 0x007FFFFE, }; /** * Combat Type Enumeration */ enum class CombatType { Magic = 0x1000, Combat = 0x2000 }; /** * Ability Type Enumeration */ enum class AbilityType { General = 0, Job, Pet, Weapon, Trait, BloodPactRage, Corsair, CorsairShot, BloodPactWard, Samba, Waltz, Step, Florish1, Scholar, Jig, Flourish2, Monster, Flourish3, Weaponskill, Rune, Ward, Effusion, }; /** * Magic Type Enumeration */ enum class MagicType : uint32_t { None = 0, WhiteMagic = 1, BlackMagic = 2, Summon = 3, Ninjutsu = 4, Song = 5, BlueMagic = 6, Geomancy = 7, Trust = 8 }; /** * Element Color Enumeration */ enum class ElementColor { Red, Clear, Green, Yellow, Purple, Blue, White, Black }; /** * Element Type Enumeration */ enum class ElementType { Fire, Ice, Air, Earth, Thunder, Water, Light, Dark, Special = 0x0F, Unknown = 0xFF }; /** * Puppet Slot Enumeration */ enum class PuppetSlot { None, Head, Body, Attachment }; /** * Race Mask Enumeration */ enum class RaceMask { None = 0x0000, HumeMale = 0x0002, HumeFemale = 0x0004, ElvaanMale = 0x0008, ElvaanFemale = 0x0010, TarutaruMale = 0x0020, TarutaruFemale = 0x0040, Mithra = 0x0080, Galka = 0x0100, Hume = 0x0006, Elvaan = 0x0018, Tarutaru = 0x0060, Male = 0x012A, Female = 0x00D4, All = 0x01FE, }; /** * Target Type Enumeration */ enum class TargetType { None = 0x00, Self = 0x01, Player = 0x02, PartyMember = 0x04, AllianceMember = 0x08, Npc = 0x10, Enemy = 0x20, Unknown = 0x40, CorpseOnly = 0x80, Corpse = 0x9D }; //////////////////////////////////////////////////////////////////////////////////////////////////// // // Vana'diel Related Enumerations // //////////////////////////////////////////////////////////////////////////////////////////////////// /** * Moon Phase Enumeration */ enum class MoonPhase { New, WaxingCrescent, WaxingCrescent2, FirstQuarter, WaxingGibbous, WaxingGibbous2, Full, WaningGibbous, WaningGibbous2, LastQuarter, WaningCrescent, WaningCrescent2, Unknown }; /** * Weekday Enumeration */ enum class Weekday { Firesday, Earthsday, Watersday, Windsday, Iceday, Lightningday, Lightsday, Darksday, Unknown }; /** * Weather Enumeration */ enum class Weather : uint32_t { Clear = 0, Sunny, Cloudy, Fog, Fire, FireTwo, Water, WaterTwo, Earth, EarthTwo, Wind, WindTwo, Ice, IceTwo, Lightning, LightningTwo, Light, LightTwo, Dark, DarkTwo }; }; // namespace Enums }; // namespace FFXI }; // namespace Ashita #endif // __ASHITA_AS_FFXI_ENUMS_H_INCLUDED__