diff --git a/Dalamud/Game/ClientState/Actors/Types/Actor.cs b/Dalamud/Game/ClientState/Actors/Types/Actor.cs index 2289a8b30..caed4962d 100644 --- a/Dalamud/Game/ClientState/Actors/Types/Actor.cs +++ b/Dalamud/Game/ClientState/Actors/Types/Actor.cs @@ -34,6 +34,12 @@ namespace Dalamud.Game.ClientState.Actors.Types { /// public Position3 Position => this.actorStruct.Position; + /// + /// Rotation of this .
+ /// This ranges from -pi to pi radians. + ///
+ public float Rotation => this.actorStruct.Rotation; + /// /// Displayname of this Actor. /// diff --git a/Dalamud/Game/ClientState/Structs/Actor.cs b/Dalamud/Game/ClientState/Structs/Actor.cs index 745eb7e76..b8cf25680 100644 --- a/Dalamud/Game/ClientState/Structs/Actor.cs +++ b/Dalamud/Game/ClientState/Structs/Actor.cs @@ -26,6 +26,7 @@ namespace Dalamud.Game.ClientState.Structs [FieldOffset(145)] public byte PlayerTargetStatus; // This is some kind of enum [FieldOffset(146)] public byte YalmDistanceFromPlayerY; // and the other is z distance [FieldOffset(160)] public Position3 Position; + [FieldOffset(176)] public float Rotation; // Rotation around the vertical axis (yaw), from -pi to pi radians [FieldOffset(0x17B8)] [MarshalAs(UnmanagedType.ByValArray, SizeConst = 28)] public byte[] Customize; diff --git a/Dalamud/Interface/DalamudDataWindow.cs b/Dalamud/Interface/DalamudDataWindow.cs index 8b8828676..aefbe4e0b 100644 --- a/Dalamud/Interface/DalamudDataWindow.cs +++ b/Dalamud/Interface/DalamudDataWindow.cs @@ -98,7 +98,7 @@ namespace Dalamud.Interface continue; stateString += - $"{actor.Address.ToInt64():X}:{actor.ActorId:X}[{i}] - {actor.ObjectKind} - {actor.Name} - X{actor.Position.X} Y{actor.Position.Y} Z{actor.Position.Z} D{actor.YalmDistanceX}\n"; + $"{actor.Address.ToInt64():X}:{actor.ActorId:X}[{i}] - {actor.ObjectKind} - {actor.Name} - X{actor.Position.X} Y{actor.Position.Y} Z{actor.Position.Z} D{actor.YalmDistanceX} R{actor.Rotation}\n"; if (actor is Npc npc) stateString += $" DataId: {npc.DataId} NameId:{npc.NameId}\n";