1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-25 14:07:46 +00:00
sapphire/src/servers/Server_Common/Common.h

1061 lines
24 KiB
C
Raw Normal View History

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
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
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-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,
};
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,
Slashing = 1,
Piercing = 2,
2017-09-05 00:37:22 -03:00
Blunt = 3,
Unknown_4 = 4,
Magical = 5,
2017-09-05 00:37:22 -03:00
Darkness = 6,
Unknown_7 = 7,
LimitBreak = 8,
};
2017-08-08 13:53:47 +02:00
enum ActionEffectType : uint8_t
{
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,
GpGain = 14,
Mount = 38
};
2017-09-24 21:02:29 -03:00
enum class ActionHitSeverityType : uint8_t
{
NormalDamage = 0,
CritHeal = 0,
CritDamage = 1,
NormalHeal = 1,
DirectHitDamage = 2,
CritDirectHitDamage = 3
};
enum class ActionCollisionType : uint8_t
2017-09-24 21:02:29 -03:00
{
None,
SingleTarget,
Circle,
2017-09-24 21:02:29 -03:00
Cone,
Box,
2017-09-24 21:02:29 -03:00
Unknown,
Unknown2,
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-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
{
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,
DuelingArea,
2017-08-08 13:53:47 +02:00
TradeOpen,
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,
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,
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-08 13:53:47 +02:00
LevelUpEffect = 0x0A,
ExpChainMsg = 0x0C,
HpSetStat = 0x0D,
DeathAnimation = 0x0E,
CastInterrupt = 0x0F,
ActionStart = 0x11,
2017-08-08 13:53:47 +02:00
StatusEffectGain = 0x14,
StatusEffectLose = 0x15,
HPFloatingText = 0x17,
2017-08-08 13:53:47 +02:00
UpdateRestedExp = 0x018,
Unk2 = 0x19,
Flee = 0x1B,
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,
SetOwnerId = 0x59,
2017-08-08 13:53:47 +02:00
ItemRepairMsg = 0x5C,
LeveStartAnim = 0x66,
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,
Unk7 = 0x205, // LogMessage?
2017-08-08 13:53:47 +02:00
AchievementMsg = 0x206,
SetItemLevel = 0x209,
ChallengeEntryCompleteMsg = 0x20B,
ChallengeEntryUnlockMsg = 0x20C,
GilTrailMsg = 0x211,
SetMaxGearSets = 0x230,
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,
};
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