From 2e39dd07e334f0bba71c4194bbb88d9b394bf183 Mon Sep 17 00:00:00 2001 From: meli <57847713+ff-meli@users.noreply.github.com> Date: Thu, 30 Apr 2020 18:34:42 -0700 Subject: [PATCH] Add actor rotation --- Dalamud/Game/ClientState/Actors/Types/Actor.cs | 6 ++++++ Dalamud/Game/ClientState/Structs/Actor.cs | 1 + Dalamud/Interface/DalamudDataWindow.cs | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) 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";