/** * Ashita SDK - Copyright (c) 2023 Ashita Development Team * Contact: https://www.ashitaxi.com/ * Contact: https://discord.gg/Ashita * * This file is part of Ashita. * * Ashita is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Ashita is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Ashita. If not, see . */ #ifndef ASHITA_SDK_FFXI_ENUMS_H_INCLUDED #define ASHITA_SDK_FFXI_ENUMS_H_INCLUDED #if defined(_MSC_VER) && (_MSC_VER >= 1020) #pragma once #endif #include namespace Ashita::FFXI::Enums { //////////////////////////////////////////////////////////////////////////////////////////////// // // Entity Related Enumerations // //////////////////////////////////////////////////////////////////////////////////////////////// enum class EntityHair : uint32_t { Hair1A = 0, Hair1B, Hair2A, Hair2B, Hair3A, Hair3B, Hair4A, Hair4B, Hair5A, Hair5B, Hair6A, Hair6B, Hair7A, Hair7B, Hair8A, Hair8B, // Non-Player Styles Fomar = 29, Mannequin = 30 }; enum class EntityRace : uint32_t { Invalid = 0, HumeMale, HumeFemale, ElvaanMale, ElvaanFemale, TarutaruMale, TarutaruFemale, Mithra, Galka, // Non-Player Races MithraChild = 29, HumeChildFemale = 30, HumeChildMale = 31, ChocoboGold = 32, ChocoboBlack = 33, ChocoboBlue = 34, ChocoboRed = 35, ChocoboGreen = 36 }; enum class EntitySpawnFlags : uint32_t { Player = 0x0001, Npc = 0x0002, PartyMember = 0x0004, AllianceMember = 0x0008, Monster = 0x0010, Object = 0x0020, Elevator = 0x0040, Airship = 0x0080, LocalPlayer = 0x0200 }; enum class EntityType : uint32_t { Player = 0, // Players Npc1 = 1, // NPC Entity (Town Folk) Npc2 = 2, // NPC Entity (Home Points, Moogles, Coffers, Town Folk, etc.) Npc3 = 3, // NPC Entity (Doors, Lights, Unique Objects, Bridges, etc.) Elevator = 4, // Elevators Airship = 5 // Airships and Boats }; //////////////////////////////////////////////////////////////////////////////////////////////// // // Inventory Related Enumerations // //////////////////////////////////////////////////////////////////////////////////////////////// enum class Container : uint32_t { Inventory = 0, Safe, Storage, Temporary, Locker, Satchel, Sack, Case, Wardrobe, Safe2, Wardrobe2, Wardrobe3, Wardrobe4, Wardrobe5, Wardrobe6, Wardrobe7, Wardrobe8, Recycle, Max }; enum class CraftRank : uint32_t { Amateur = 0, Recruit, Initiate, Novice, Apprentice, Journeyman, Craftsman, Artisan, Adept, Veteran, Expert, Max }; enum class EquipmentSlot : uint32_t { Main = 0, Sub, Range, Ammo, Head, Body, Hands, Legs, Feet, Neck, Waist, Ear1, Ear2, Ring1, Ring2, Back, Max }; enum class SkillType : uint32_t { None = 0, // 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, // Automaton Skills AutomatonMelee = 22, AutomatonRanged = 23, AutomatonMagic = 24, // 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, Geomancy = 44, Handbell = 45, // Crafting Skills Fishing = 48, Woodworking = 49, Smithing = 50, Goldsmithing = 51, Clothcraft = 52, Leathercraft = 53, Bonecraft = 54, Alchemy = 55, Cooking = 56, Synergy = 57, ChocoboDigging = 58, }; enum class TreasureStatus : uint32_t { None = 0, Pass, Lot }; //////////////////////////////////////////////////////////////////////////////////////////////// // // Player Related Enumerations // //////////////////////////////////////////////////////////////////////////////////////////////// enum class Job : 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, Monstrosity = 23, // Used during Monstrosity. }; enum class LoginStatus : uint32_t { LoginScreen = 0, Loading = 1, LoggedIn = 2 }; enum class Nation : uint32_t { SandOria, Bastok, Windurst }; enum class ViewMode : uint32_t { ThirdPerson, FirstPerson }; //////////////////////////////////////////////////////////////////////////////////////////////// // // Resource Related Enumerations // //////////////////////////////////////////////////////////////////////////////////////////////// enum class AbilityType : uint32_t { General = 0, JobAbility, PetCommand, WeaponSkill, Trait, Unused0000 = 5, // Currently unused. BloodPactRage, Unused0001 = 7, // Currently unused. CorsairRoll, CorsairShot, BloodPactWard, DancerSamba, DancerWaltz, DancerStep, DancerFlorish1, ScholarStratagem, DancerJig, DancerFlorish2, BeastmasterSic, DancerFlorish3, MonsterSkill, RuneEnhancement, RuneWard, RuneEffusion, }; enum class CombatType : uint32_t { Magic = 0x1000, Combat = 0x2000 }; enum class EquipmentSlotMask : uint32_t { 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 }; enum class ElementColor : uint32_t { Red, Clear, Green, Yellow, Purple, Blue, White, Black }; enum class ElementType : uint32_t { Fire, Ice, Air, Earth, Thunder, Water, Light, Dark, Special = 0x0F, Unknown = 0xFF }; enum class ItemFlags : uint32_t { None = 0x0000, WallHanging = 0x0001, Flag1 = 0x0002, Flag2 = 0x0004, Flag3 = 0x0008, CanSendPol = 0x0010, // Can send within POL account. 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 }; enum class ItemType : uint32_t { None = 0, Item = 1, QuestItem = 2, Fish = 3, Weapon = 4, Armor = 5, Linkshell = 6, UsableItem = 7, Crystal = 8, Currency = 9, Furnishing = 10, Plant = 11, Flowerpot = 12, PuppetItem = 13, Mannequin = 14, Book = 15, RacingForm = 16, BettingSlip = 17, SoulPlate = 18, Reflector = 19, Logs = 20, LotteryTicket = 21, TabulaM = 22, TabulaR = 23, Voucher = 24, Rune = 25, Evolith = 26, StorageSlip = 27, Type1 = 28, Unknown0000 = 29, Instinct = 30, }; 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, }; enum class MagicType : uint32_t { None = 0, WhiteMagic = 1, BlackMagic = 2, Summon = 3, Ninjutsu = 4, Song = 5, BlueMagic = 6, Geomancy = 7, Trust = 8 }; enum class PuppetSlot : uint32_t { None, Head, Body, Attachment }; enum class RaceMask : uint32_t { 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, }; enum class TargetFlags : uint32_t { None = 0x00, Self = 0x01, Player = 0x02, PartyMember = 0x04, AllianceMember = 0x08, Npc = 0x10, Enemy = 0x20, Unknown = 0x40, Object = 0x60, CorpseOnly = 0x80, Corpse = 0x9D }; //////////////////////////////////////////////////////////////////////////////////////////////// // // Vana'diel Related Enumerations // //////////////////////////////////////////////////////////////////////////////////////////////// enum class MoonPhase : uint32_t { New, WaxingCrescent, WaxingCrescent2, FirstQuarter, WaxingGibbous, WaxingGibbous2, Full, WaningGibbous, WaningGibbous2, LastQuarter, WaningCrescent, WaningCrescent2, Unknown }; 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 }; enum class Weekday : uint32_t { Firesday, Earthsday, Watersday, Windsday, Iceday, Lightningday, Lightsday, Darksday, Unknown }; } // namespace Ashita::FFXI::Enums #endif // ASHITA_SDK_FFXI_ENUMS_H_INCLUDED