2017-08-08 13:53:47 +02:00
# ifndef _COMMON_H
# define _COMMON_H
# include <stdint.h>
2017-08-09 00:36:26 +02:00
# include <cstdint>
2017-08-08 13:53:47 +02:00
# include <vector>
# include <boost/make_shared.hpp>
// +---------------------------------------------------------------------------
// The following enumerations are structures to require their type be included.
// They are also defined within the Core::Common namespace to avoid collisions.
// +---------------------------------------------------------------------------
namespace Core {
namespace Common {
// 99 is the last spawn id that seems to spawn any actor
const uint8_t MAX_DISPLAYED_ACTORS = 99 ;
const int32_t INVALID_GAME_OBJECT_ID = 0xE0000000 ;
struct FFXIVARR_POSITION3
{
float x ;
float y ;
float z ;
} ;
enum EquipSlot : uint8_t
{
MainHand = 0 ,
OffHand = 1 ,
Head = 2 ,
Body = 3 ,
Hands = 4 ,
Waist = 5 ,
Legs = 6 ,
Feet = 7 ,
Neck = 8 ,
Ear = 9 ,
Wrist = 10 ,
Ring1 = 11 ,
Ring2 = 12 ,
SoulCrystal = 13 ,
} ;
enum InventoryType : uint16_t
{
Bag0 = 0 ,
Bag1 = 1 ,
Bag2 = 2 ,
Bag3 = 3 ,
GearSet0 = 1000 ,
GearSet1 = 1001 ,
Currency = 2000 ,
Crystal = 2001 ,
//UNKNOWN_0 = 2003,
KeyItem = 2004 ,
DamagedGear = 2007 ,
//UNKNOWN_1 = 2008,
ArmoryOff = 3200 ,
ArmoryHead = 3201 ,
ArmoryBody = 3202 ,
ArmoryHand = 3203 ,
ArmoryWaist = 3204 ,
ArmoryLegs = 3205 ,
ArmoryFeet = 3206 ,
ArmotyNeck = 3207 ,
ArmoryEar = 3208 ,
ArmoryWrist = 3209 ,
ArmoryRing = 3300 ,
ArmorySoulCrystal = 3400 ,
ArmoryMain = 3500 ,
RetainerBag0 = 10000 ,
RetainerBag1 = 10001 ,
RetainerBag2 = 10002 ,
RetainerBag3 = 10003 ,
RetainerBag4 = 10004 ,
RetainerBag5 = 10005 ,
RetainerBag6 = 10006 ,
RetainerEquippedGear = 11000 ,
RetainerGil = 12000 ,
RetainerCrystal = 12001 ,
RetainerMarket = 12002 ,
FreeCompanyBag0 = 20000 ,
FreeCompanyBag1 = 20001 ,
FreeCompanyBag2 = 20002 ,
FreeCompanyGil = 22000 ,
FreeCompanyCrystal = 22001
} ;
enum Race : uint8_t
{
Hyur = 1 ,
Elezen = 2 ,
Lalafell = 3 ,
Miqote = 4 ,
Roegadyn = 5 ,
AuRa = 6 ,
} ;
enum struct ZoneingType : uint8_t
{
None = 1 ,
Teleport = 2 ,
Return = 3 ,
ReturnDead = 4 ,
FadeIn = 5 ,
} ;
2017-08-29 21:52:40 -03:00
enum struct ResurrectType : uint8_t
{
None = 0 ,
RaiseSpell = 5 ,
Return = 8
} ;
2017-08-08 13:53:47 +02:00
enum Tribe : uint8_t
{
Midlander = 1 ,
Highlander = 2 ,
Wildwood = 3 ,
Duskwight = 4 ,
Plainsfolk = 5 ,
Dunesfolk = 6 ,
SeekerOfTheSun = 7 ,
KeeperOfTheMoon = 8 ,
SeaWolf = 9 ,
Hellsguard = 10 ,
Raen = 11 ,
Xaela = 12 ,
} ;
enum Gender : uint8_t
{
Male = 0 ,
Female = 1 ,
} ;
enum GuardianDeity : uint8_t
{
Halone = 1 , // the Fury
Menphina = 2 , // the Lover
Thaliak = 3 , // the Scholar
Nymeia = 4 , // the Spinner
Llymlaen = 5 , // the Navigator
Oschon = 6 , // the Wanderer
Byregot = 7 , // the Builder
Rhalgr = 8 , // the Destroyer
Azeyma = 9 , // the Warden
NaldThal = 10 , // the Traders
Nophica = 11 , // the Matron
Althyk = 12 , // the Keeper
} ;
enum struct GrandCompany : uint8_t
{
None = 0 ,
Maelstrom = 1 ,
TwinAdder = 2 ,
ImmortalFlames = 3 ,
} ;
enum struct GCRank : uint8_t
{
None = 0 ,
PrivateThirdClass = 1 ,
PrivateSecondClass = 2 ,
PrivateFirstClass = 3 ,
Corporal = 4 ,
SergeantThirdClass = 5 ,
SergeantSecondClass = 6 ,
SergeantFirstClass = 7 ,
ChiefSergeant = 8 ,
SecondLieutenant = 9 ,
FirstLieutenant = 10 ,
Captain = 11 ,
SecondCommander = 12 ,
FirstCommander = 13 ,
HighCommander = 14 ,
RearMarshal = 15 ,
ViceMarshal = 16 ,
Marshal = 17 ,
GrandMarshal = 18 ,
Champion = 19 ,
} ;
enum struct Weather : uint8_t
{
None ,
Clear ,
Fair ,
Overcast ,
Fog ,
Wind ,
Gales ,
Rain ,
Showers ,
Thunder ,
Thunderstorms ,
DustStorms ,
Sandstorms ,
HotSpells ,
HeatWave ,
Snow ,
Blizzards ,
Gloom ,
Aurora ,
Darkness ,
Hopelessness ,
Overcast1 ,
StormClouds ,
Torrential ,
Torrential1 ,
Lour ,
HeatWave1 ,
Gloom1 ,
Gales1 ,
Eruptions ,
Fair1
} ;
enum Town : uint8_t
{
LimsaLominsa = 1 ,
Gridania = 2 ,
Uldah = 3 ,
Ishgard = 4 ,
} ;
enum ClassJob : uint8_t
{
CLASS_ADV = 0 , // purely internal
CLASS_GLADIATOR = 1 , // gladiator
CLASS_PUGILIST = 2 , // pugilist
CLASS_MARAUDER = 3 , // marauder
CLASS_LANCER = 4 , // lancer
CLASS_ARCHER = 5 , // archer
CLASS_CONJURER = 6 , // conjurer
CLASS_THAUMATURGE = 7 , // thaumaturge
CLASS_WOODWORKER = 8 , // carpenter
CLASS_BLACKSMIT = 9 , // blacksmith
CLASS_ARMOURER = 10 , // armorer
CLASS_GOLDSMITH = 11 , // goldsmith
CLASS_TANNER = 12 , // leatherworker
CLASS_WEAVER = 13 , // weaver
CLASS_ALCHEMIST = 14 , // alchemist
CLASS_CULINARIAN = 15 , // culinarian
CLASS_MINER = 16 , // miner
CLASS_HARVESTER = 17 , // botanist
CLASS_FISHERMAN = 18 , // fisher
JOB_KNIGHT = 19 , // paladin
JOB_MONK = 20 , // monk
JOB_WARRIOR = 21 , // warrior
JOB_DRAGON = 22 , // dragoon
JOB_BARD = 23 , // bard
2017-08-20 02:46:06 -03:00
JOB_WHITEMAGE = 24 , // white mage
JOB_BLACKMAGE = 25 , // black mage
2017-08-08 13:53:47 +02:00
CLASS_ARCANIST = 26 , // arcanist
JOB_SUMMONER = 27 , // summoner
JOB_SCHOLAR = 28 , // scholar
2017-08-20 02:46:06 -03:00
CLASS_ROGUE = 29 , // rogue
JOB_NINJA = 30 , // ninja
JOB_MACHINIST = 31 , // machinist
JOB_DARKKNIGHT = 32 , // darknight
JOB_ASTROLOGIAN = 33 , // astro
2017-08-08 13:53:47 +02:00
JOB_SAMURAI = 34 , // sam
JOB_REDMAGE = 35 , // red mage
2017-08-19 11:28:04 +09:00
2017-08-08 13:53:47 +02:00
} ;
/**
* Structural representation of the packet sent by the server
* Send the entire StatusEffect list
*/
struct StatusEffect
{
uint16_t effect_id ;
uint16_t unknown1 ;
float duration ;
uint32_t sourceActorId ;
} ;
enum struct ItemCategory : uint8_t
{
not_set = 0 ,
PugWep = 1 ,
GlaWep = 2 ,
MrdWep = 3 ,
ArcWep = 4 ,
LncWep = 5 ,
ThmWep = 6 ,
Thm2Wep = 7 ,
CnjWep = 8 ,
Cnj2Wep = 9 ,
ArnWep = 10 ,
Shield = 11 ,
CrpPri = 12 ,
BlmPri = 13 ,
ArmPri = 14 ,
GldPri = 15 ,
LtwPri = 16 ,
WvrPri = 17 ,
AlcPri = 18 ,
ClnPri = 19 ,
MinPri = 20 ,
BotPri = 21 ,
FshPri = 22 ,
CrpSec = 23 ,
BsmSec = 24 ,
ArmSec = 25 ,
GldSec = 26 ,
LtwSec = 27 ,
WvrSec = 28 ,
AlcSec = 29 ,
ClnSec = 30 ,
MinSec = 31 ,
BotSec = 32 ,
FshSec = 33 ,
Throw = 34 ,
Head = 35 ,
Body = 36 ,
Hands = 37 ,
Waist = 38 ,
Legs = 39 ,
Feet = 40 ,
UndShirt = 41 ,
UndGarm = 42 ,
Earring = 43 ,
Necklace = 44 ,
Bracelet = 45 ,
Ring = 46 ,
Crystal = 47 ,
Materia = 48 ,
Material = 49 ,
Food = 50 ,
Enhancement = 51 ,
Curative = 52 ,
PLaceholder = 53 ,
Enfeeb = 54 ,
Medecine = 55 ,
} ;
enum RegionType : uint8_t
{
normal ,
instance ,
} ;
2017-09-28 17:35:07 -03:00
enum TerritoryIntendedUseType : uint8_t //ToDo: Add The Rest of The Territory Types and Have Better Names For Them
{
Town = 0 ,
OpenWorld = 1 ,
Inn = 2 ,
Dungeon = 3 ,
JailArea = 5 ,
OpeningArea = 6 ,
BeforeTrialDung = 7 ,
AllianceRaid = 8 ,
OpenWorldInstanceBattle = 9 ,
Trial = 10 ,
HousingArea = 13 ,
HousingPrivateArea = 14 ,
MSQPrivateArea = 15 ,
Raids = 16 ,
RaidFights = 17 ,
ChocoboTutorial = 21 ,
Wedding = 22 ,
BeginnerTutorial = 27 ,
PalaceOfTheDead = 31 ,
} ;
2017-08-08 13:53:47 +02:00
enum CharaLook : uint8_t
{
Race = 0x00 ,
Gender = 0x01 ,
Tribe = 0x04 ,
Height = 0x03 ,
ModelType = 0x02 , // Au Ra: changes horns/tails, everything else: seems to drastically change appearance (flip between two sets, odd/even numbers). sometimes retains hairstyle and other features
FaceType = 0x05 ,
HairStyle = 0x06 ,
HasHighlights = 0x07 , // negative to enable, positive to disable
SkinColor = 0x08 ,
EyeColor = 0x09 , // color of character's right eye
HairColor = 0x0A , // main color
HairColor2 = 0x0B , // highlights color
FaceFeatures = 0x0C , // seems to be a toggle, (-odd and +even for large face covering), opposite for small
FaceFeaturesColor = 0x0D ,
Eyebrows = 0x0E ,
EyeColor2 = 0x0F , // color of character's left eye
EyeShape = 0x10 ,
NoseShape = 0x11 ,
JawShape = 0x12 ,
LipStyle = 0x13 , // lip colour depth and shape (negative values around -120 darker/more noticeable, positive no colour)
LipColor = 0x14 ,
RaceFeatureSize = 0x15 ,
RaceFeatureType = 0x16 , // negative or out of range tail shapes for race result in no tail (e.g. Au Ra has max of 4 tail shapes), incorrect value can crash client
BustSize = 0x17 , // char creator allows up to max of 100, i set to 127 cause who wouldnt but no visible difference
Facepaint = 0x18 ,
FacepaintColor = 0x19 ,
} ;
enum MoveType : uint16_t
{
Run = 0x00 ,
Walk = 0x02 ,
Strafe = 0x04 ,
Jump = 0x100 ,
Fall = 0x400 ,
Land = 0x200 ,
} ;
struct QuestActive
{
QuestActive ( )
{
c . questId = 0 ;
c . sequence = 0 ;
c . flags = 0 ;
c . UI8A = 0 ;
c . UI8B = 0 ;
c . UI8C = 0 ;
c . UI8D = 0 ;
c . UI8E = 0 ;
c . UI8F = 0 ;
c . padding = 0 ;
}
union
{
struct
{
uint16_t questId ;
uint8_t sequence ;
uint8_t flags ;
uint8_t padding ;
uint8_t BitFlag48 ;
uint8_t BitFlag40 ;
uint8_t BitFlag32 ;
uint8_t BitFlag24 ;
uint8_t BitFlag16 ;
uint8_t BitFlag8 ;
uint8_t padding1 ;
} a ;
struct
{
uint16_t questId ;
uint8_t sequence ;
uint8_t flags ;
uint8_t padding ;
uint8_t UI8AL : 4 ;
uint8_t UI8AH : 4 ;
uint8_t UI8BL : 4 ;
uint8_t UI8BH : 4 ;
uint8_t UI8CL : 4 ;
uint8_t UI8CH : 4 ;
uint8_t UI8DL : 4 ;
uint8_t UI8DH : 4 ;
uint8_t UI8EL : 4 ;
uint8_t UI8EH : 4 ;
uint8_t UI8FL : 4 ;
uint8_t UI8FH : 4 ;
uint8_t padding1 ;
} b ;
struct
{
uint16_t questId ;
uint8_t sequence ;
uint8_t flags ;
uint8_t padding ;
uint8_t UI8A ;
uint8_t UI8B ;
uint8_t UI8C ;
uint8_t UI8D ;
uint8_t UI8E ;
uint8_t UI8F ;
uint8_t padding1 ;
} c ;
//struct
//{
// uint16_t questId;
// uint8_t sequence;
// uint8_t flags;
// uint8_t padding;
// uint16_t UI16A;
// uint16_t UI16B;
// uint16_t UI16C;
// uint8_t padding1;
//} d;
//struct
//{
// uint8_t padding;
// uint32_t UI32A;
// uint16_t padding2;
//} e;
} ;
} ;
enum EventType : uint16_t
{
Quest = 0x0001 ,
ChocoRent = 0x0002 ,
Shop = 0x0004 ,
Aetheryte = 0x0005 ,
GuildLeveAssign = 0x0006 ,
DefaultTalk = 0x0009 ,
CustomTalk = 0x000B ,
CraftLeve = 0x000E ,
ChocoPort = 0x0012 ,
Opening = 0x0013 ,
GCShop = 0x0016 ,
GuildOrderGuide = 0x0017 ,
GuildOrderOfficer = 0x0018 ,
Stories = 0x001A ,
FcTalk = 0x001F ,
} ;
2017-09-04 01:36:19 -03:00
enum struct ActionAspect : uint8_t
{
None = 0 , // Doesn't imply unaspected
Fire = 1 ,
Ice = 2 ,
Wind = 3 ,
Stone = 4 ,
Lightning = 5 ,
Water = 6 ,
Unaspected = 7 // Doesn't imply magical unaspected damage - could be unaspected physical
} ;
2017-09-24 21:02:29 -03:00
enum class ActionType : int8_t
2017-08-08 13:53:47 +02:00
{
2017-09-05 00:37:22 -03:00
WeaponOverride = - 1 , // Needs more investigation (takes the damage type of the equipped weapon)?
Unknown_0 = 0 ,
2017-09-13 11:47:39 +09:00
Slashing = 1 ,
Piercing = 2 ,
2017-09-05 00:37:22 -03:00
Blunt = 3 ,
2017-09-13 11:47:39 +09:00
Unknown_4 = 4 ,
2017-09-04 01:36:19 -03:00
Magical = 5 ,
2017-09-05 00:37:22 -03:00
Darkness = 6 ,
2017-09-04 01:36:19 -03:00
Unknown_7 = 7 ,
LimitBreak = 8 ,
} ;
2017-08-08 13:53:47 +02:00
2017-09-27 04:31:41 -03:00
enum ActionEffectType : uint8_t
2017-09-18 23:14:43 -03:00
{
Nothing = 0 ,
Miss = 1 ,
FullResist = 2 ,
Damage = 3 ,
Heal = 4 ,
BlockedDamage = 5 ,
ParriedDamage = 6 ,
Invulnerable = 7 ,
NoEffectText = 8 ,
Unknown_0 = 9 ,
MpLoss = 10 ,
MpGain = 11 ,
TpLoss = 12 ,
TpGain = 13 ,
2017-10-17 21:31:00 +02:00
GpGain = 14 ,
Mount = 38
2017-09-18 23:14:43 -03:00
} ;
2017-09-24 21:02:29 -03:00
enum class ActionHitSeverityType : uint8_t
2017-09-18 23:14:43 -03:00
{
2017-09-19 00:09:37 -03:00
NormalDamage = 0 ,
CritHeal = 0 ,
CritDamage = 1 ,
NormalHeal = 1 ,
DirectHitDamage = 2 ,
CritDirectHitDamage = 3
2017-09-18 23:14:43 -03:00
} ;
2017-09-27 04:31:41 -03:00
enum class ActionCollisionType : uint8_t
2017-09-24 21:02:29 -03:00
{
None ,
SingleTarget ,
2017-09-27 04:31:41 -03:00
Circle ,
2017-09-24 21:02:29 -03:00
Cone ,
2017-09-27 04:31:41 -03:00
Box ,
2017-09-24 21:02:29 -03:00
Unknown ,
Unknown2 ,
2017-09-27 04:31:41 -03:00
PersistentArea , // for when you set aoe like asylum
Unknown3
2017-09-24 21:02:29 -03:00
} ;
2017-09-05 00:37:22 -03:00
enum HandleActionType : uint8_t
2017-09-04 01:36:19 -03:00
{
2017-08-08 13:53:47 +02:00
Event ,
Spell ,
Teleport
} ;
2017-08-14 17:10:19 +02:00
enum HandleSkillType : uint8_t
{
StdDamage ,
StdHeal ,
StdDot ,
} ;
2017-10-01 01:14:43 +02:00
enum InvincibilityType : uint8_t
{
2017-10-01 01:23:44 +02:00
InvincibilityNone ,
InvincibilityRefill ,
InvincibilityStayAlive ,
2017-10-01 01:14:43 +02:00
} ;
2017-10-02 10:43:09 +02:00
2017-08-08 13:53:47 +02:00
enum struct PlayerStateFlag : uint8_t
{
2017-10-01 01:42:07 +02:00
SomeFlag ,
2017-08-08 13:53:47 +02:00
NoCombat ,
Combat ,
Casting ,
StatusAffliction ,
StatusAffliction1 ,
Occupied ,
Occupied1 ,
Occupied2 ,
Occupied3 ,
2017-10-01 17:58:11 +02:00
2017-08-08 13:53:47 +02:00
BoundByDuty ,
Occupied4 ,
2017-08-13 18:28:05 +02:00
DuelingArea ,
2017-08-08 13:53:47 +02:00
TradeOpen ,
2017-08-13 18:28:05 +02:00
Occupied5 ,
2017-08-08 13:53:47 +02:00
HandlingItems ,
Crafting ,
PreparingToCraft ,
Gathering ,
Fishing ,
2017-10-01 17:58:11 +02:00
2017-08-08 13:53:47 +02:00
BeingRaised ,
BetweenAreas ,
Stealthed ,
InnRoom ,
Jumping ,
AutoRun ,
2017-08-13 18:28:05 +02:00
Occupied6 ,
2017-08-08 13:53:47 +02:00
BetweenAreas1 ,
SystemError ,
LoggingOut ,
2017-10-01 17:58:11 +02:00
2017-08-08 13:53:47 +02:00
InvalidLocation ,
WaitingForDuty ,
BoundByDuty1 ,
Mounting ,
WatchingCutscene ,
WaitingForDutyFinder ,
CreatingCharacter ,
Jumping1 ,
PvpDisplay ,
StatusAfflication2 ,
Mounting1 ,
CarryingItem ,
UsingPartyFinder ,
HousingFunctions ,
Transformed ,
FreeTrail ,
BeingMoved ,
Mounting2 ,
StatusAffliction3 ,
StatusAffliction4 ,
2017-10-01 17:58:11 +02:00
2017-08-08 13:53:47 +02:00
RegisteringRaceOrMatch ,
WaitingForRaceOrMatch ,
WaitingForTripleTriadMatch ,
InFlight ,
2017-08-13 18:28:05 +02:00
WatchingCutscene1 ,
DeepDungeon ,
Swimming ,
Diving ,
RegisteringTripleTriad ,
WaitingTripleTriad ,
InCrossWorldParty
2017-08-08 13:53:47 +02:00
} ;
enum struct FateStatus : uint8_t
{
Active = 2 ,
Inactive = 4 ,
Preparing = 7 ,
Completed = 8 ,
} ;
enum struct OnlineStatus : uint8_t
{
None = 0 ,
Producer ,
GameMaster ,
GameMaster1 ,
GameMaster2 ,
Disconnected ,
WaitFriendlistApproval ,
WaitLinkshellApproval ,
WaitFCApproval ,
NotFound ,
Offline ,
Mentor ,
Busy ,
PvP ,
TripleTriad ,
Cutscene ,
ChocoPorter ,
Afk ,
2017-08-09 10:30:18 +02:00
CameraMode ,
2017-08-08 13:53:47 +02:00
LfRepairs ,
LfRepair ,
LfMeld ,
RolePlaying ,
LfParty ,
SwordForHire ,
WaitDutyFinder ,
RecPartyMembers ,
Mentor1 ,
PvEMentor ,
TradeMentor ,
PvPMentor ,
Returner ,
NewAdventurer ,
AllianceLead ,
AlliancePartyLead ,
AllianceMember ,
PartyLeader ,
PartyMember ,
PartyLeaderCross ,
PartyMemberCross ,
AnotherWorld ,
SharingDuty ,
SimliarDuty ,
InDuty ,
TrialAdventurer ,
FreeCompany ,
GrandCompany ,
Online
} ;
enum ActorControlType : uint16_t
{
ToggleWeapon = 0x01 ,
SetStatus = 0x02 ,
CastStart = 0x03 ,
ToggleAggro = 0x04 ,
ClassJobChange = 0x05 ,
DefeatMsg = 0x06 ,
GainExpMsg = 0x07 ,
2017-08-19 11:28:04 +09:00
2017-08-08 13:53:47 +02:00
LevelUpEffect = 0x0A ,
ExpChainMsg = 0x0C ,
HpSetStat = 0x0D ,
DeathAnimation = 0x0E ,
CastInterrupt = 0x0F ,
2017-08-16 22:59:53 +02:00
ActionStart = 0x11 ,
2017-08-08 13:53:47 +02:00
StatusEffectGain = 0x14 ,
StatusEffectLose = 0x15 ,
2017-08-15 11:51:59 +02:00
HPFloatingText = 0x17 ,
2017-08-08 13:53:47 +02:00
UpdateRestedExp = 0x018 ,
Unk2 = 0x19 ,
Flee = 0x1B ,
2017-09-15 00:56:29 -03:00
Unk3 = 0x20 , // Animation related?
2017-08-08 13:53:47 +02:00
CombatIndicationShow = 0x22 ,
SpawnEffect = 0x25 ,
ToggleInvisible = 0x26 ,
ToggleActionUnlock = 0x29 ,
UpdateUiExp = 0x2B ,
DmgTakenMsg = 0x2D ,
SetTarget = 0x32 ,
ToggleNameHidden = 0x36 ,
LimitbreakStart = 0x47 ,
LimitbreakPartyStart = 0x48 ,
BubbleText = 0x49 ,
DamageEffect = 0x50 ,
RaiseAnimation = 0x51 ,
TreasureScreenMsg = 0x57 ,
2017-09-13 11:47:39 +09:00
SetOwnerId = 0x59 ,
2017-08-08 13:53:47 +02:00
ItemRepairMsg = 0x5C ,
LeveStartAnim = 0x66 ,
2017-09-15 00:56:29 -03:00
LeveStartError = 0x67 ,
2017-08-08 13:53:47 +02:00
PlayerNameGrayout = 0x6A ,
ItemObtainMsg = 0x75 ,
DutyQuestScreenMsg = 0x7B ,
ItemObtainIcon = 0x84 ,
FateItemFailMsg = 0x85 ,
ItemFailMsg = 0x86 ,
ActionLearnMsg1 = 0x87 ,
FreeEventPos = 0x8A ,
UnlockAetherCurrentMsg = 0xA4 ,
RemoveName = 0xA8 ,
ScreenFadeOut = 0xAA ,
ZoneIn = 0xC8 ,
ZoneInDefaultPos = 0xC9 ,
TeleportStart = 0xCB ,
TeleportDone = 0xCD ,
TeleportDoneFadeOut = 0xCE ,
DespawnZoneScreenMsg = 0xCF ,
InstanceSelectDlg = 0xD2 ,
ActorDespawnEffect = 0xD4 ,
CompanionUnlock = 0xFD ,
ObtainBarding = 0xFE ,
EquipBarding = 0xFF ,
CompanionMsg1 = 0x102 ,
CompanionMsg2 = 0x103 ,
ShowPetHotbar = 0x104 ,
ActionLearnMsg = 0x109 ,
ActorFadeOut = 0x10A ,
ActorFadeIn = 0x10B ,
WithdrawMsg = 0x10C ,
OrderMinion = 0x10D ,
ToggleMinion = 0x10E ,
LearnMinion = 0x10F ,
ActorFateOut1 = 0x110 ,
Emote = 0x122 ,
SetPose = 0x127 ,
CraftingUnk = 0x12C ,
GatheringSenseMsg = 0x130 ,
PartyMsg = 0x131 ,
GatheringSenseMsg1 = 0x132 ,
GatheringSenseMsg2 = 0x138 ,
FishingMsg = 0x140 ,
FishingBaitMsg = 0x145 ,
FishingReachMsg = 0x147 ,
FishingFailMsg = 0x148 ,
MateriaConvertMsg = 0x15E ,
MeldSuccessMsg = 0x15F ,
MeldFailMsg = 0x160 ,
MeldModeToggle = 0x161 ,
AetherRestoreMsg = 0x163 ,
DyeMsg = 0x168 ,
ToggleCrestMsg = 0x16A ,
ToggleBulkCrestMsg = 0x16B ,
MateriaRemoveMsg = 0x16C ,
GlamourCastMsg = 0x16D ,
GlamourRemoveMsg = 0x16E ,
RelicInfuseMsg = 0x179 ,
AetherReductionDlg = 0x17D ,
Unk6 = 0x19C ,
SetTitle = 0x1F4 ,
SetStatusIcon = 0x1F8 ,
SetHomepoint = 0x1FB ,
SetFavorite = 0x1FC ,
LearnTeleport = 0x1FD ,
ArmoryErrorMsg = 0x201 ,
AchievementPopup = 0x203 ,
2017-09-15 00:56:29 -03:00
Unk7 = 0x205 , // LogMessage?
2017-08-08 13:53:47 +02:00
AchievementMsg = 0x206 ,
SetItemLevel = 0x209 ,
ChallengeEntryCompleteMsg = 0x20B ,
ChallengeEntryUnlockMsg = 0x20C ,
GilTrailMsg = 0x211 ,
SetMaxGearSets = 0x230 ,
2017-10-05 20:24:58 +02:00
SetCharaGearParamUI = 0x260 ,
2017-08-08 13:53:47 +02:00
2017-10-09 20:09:49 +02:00
GearSetEquipMsg = 0x321 ,
2017-10-18 17:54:17 +02:00
ToggleOrchestrionUnlock = 0x396 ,
Dismount = 0x3a0
2017-08-08 13:53:47 +02:00
} ;
2017-10-17 18:33:36 +02:00
enum struct ChatType : uint16_t
2017-08-08 13:53:47 +02:00
{
LogKindError ,
ServerDebug ,
ServerUrgent ,
ServerNotice ,
Unused4 ,
Unused5 ,
Unused6 ,
Unused7 ,
Unused8 ,
Unused9 ,
Say ,
Shout ,
Tell ,
TellReceive ,
Party ,
Alliance ,
LS1 ,
LS2 ,
LS3 ,
LS4 ,
LS5 ,
LS6 ,
LS7 ,
LS8 ,
FreeCompany ,
Unused25 ,
Unused26 ,
NoviceNetwork ,
CustomEmote ,
StandardEmote ,
Yell ,
Unknown31 ,
PartyUnk2 ,
Unused33 ,
Unused34 ,
Unused35 ,
Unused36 ,
Unused37 ,
Unused38 ,
Unused39 ,
Unused40 ,
BattleDamage ,
BattleFailed ,
BattleActions ,
BattleItems ,
BattleHealing ,
BattleBeneficial ,
BattleDetrimental ,
BattleUnk48 ,
BattleUnk49 ,
Unused50 ,
Unused51 ,
Unused52 ,
Unused53 ,
Unused54 ,
Unused55 ,
Echo ,
SystemMessage ,
SystemErrorMessage ,
BattleSystem ,
GatheringSystem ,
NPCMessage ,
LootMessage ,
Unused63 ,
CharProgress ,
Loot ,
Crafting ,
Gathering ,
NPCAnnouncement ,
FCAnnouncement ,
FCLogin ,
RetainerSale ,
PartySearch ,
PCSign ,
DiceRoll ,
NoviceNetworkNotice ,
Unknown76 ,
Unused77 ,
Unused78 ,
Unused79 ,
GMTell ,
GMSay ,
GMShout ,
GMYell ,
GMParty ,
GMFreeCompany ,
GMLS1 ,
GMLS2 ,
GMLS3 ,
GMLS4 ,
GMLS5 ,
GMLS6 ,
GMLS7 ,
GMLS8 ,
GMNoviceNetwork ,
Unused95 ,
Unused96 ,
Unused97 ,
Unused98 ,
Unused99 ,
Unused100
} ;
2017-10-06 00:13:29 +02:00
enum EquipDisplayFlags : uint8_t
2017-10-05 20:40:52 +02:00
{
HideNothing = 0x0 ,
HideHead = 0x1 ,
HideWeapon = 0x2 ,
Visor = 0x40 ,
} ;
2017-10-17 21:31:00 +02:00
enum SkillType : uint8_t
{
Normal = 0x1 ,
MountSkill = 0xD ,
} ;
2017-08-08 13:53:47 +02:00
struct ServerEntry
{
uint32_t serverId ;
uint32_t flags ;
} ;
typedef std : : vector < PlayerStateFlag > PlayerStateFlagList ;
} /* Common */
} /* Core */
2017-08-09 10:30:18 +02:00
# endif