diff --git a/Dalamud/Game/ClientState/Actors/ActorTable.cs b/Dalamud/Game/ClientState/Actors/ActorTable.cs index 048259ada..c6746d29c 100644 --- a/Dalamud/Game/ClientState/Actors/ActorTable.cs +++ b/Dalamud/Game/ClientState/Actors/ActorTable.cs @@ -93,11 +93,12 @@ namespace Dalamud.Game.ClientState.Actors { ObjectKind.Player => new PlayerCharacter(offset, actorStruct, this.dalamud), ObjectKind.BattleNpc => new BattleNpc(offset, actorStruct, this.dalamud), ObjectKind.EventObj => new EventObj(offset, actorStruct, this.dalamud), - _ => new Actor(offset, actorStruct, this.dalamud) + ObjectKind.Companion => new Npc(offset, actorStruct, this.dalamud), + _ => new Actor(offset, actorStruct, this.dalamud) }; } catch (Exception e) { - Log.Information($"{e}"); + Log.Error(e, "Could not read actor from memory."); return null; } } diff --git a/Dalamud/Game/ClientState/Actors/Types/NonPlayer/Npc.cs b/Dalamud/Game/ClientState/Actors/Types/NonPlayer/Npc.cs index 99cb9e739..35e659297 100644 --- a/Dalamud/Game/ClientState/Actors/Types/NonPlayer/Npc.cs +++ b/Dalamud/Game/ClientState/Actors/Types/NonPlayer/Npc.cs @@ -11,7 +11,7 @@ namespace Dalamud.Game.ClientState.Actors.Types.NonPlayer { /// The memory representation of the base actor. /// A dalamud reference needed to access game data in Resolvers. /// The address of this actor in memory. - protected Npc(IntPtr address, Structs.Actor actorStruct, Dalamud dalamud) : base(address, actorStruct, dalamud) { } + public Npc(IntPtr address, Structs.Actor actorStruct, Dalamud dalamud) : base(address, actorStruct, dalamud) { } /// /// The data ID of the NPC linking to their respective game data. diff --git a/Dalamud/Game/ClientState/Structs/Actor.cs b/Dalamud/Game/ClientState/Structs/Actor.cs index ac481dcf2..683847cf3 100644 --- a/Dalamud/Game/ClientState/Structs/Actor.cs +++ b/Dalamud/Game/ClientState/Structs/Actor.cs @@ -30,27 +30,27 @@ namespace Dalamud.Game.ClientState.Structs // public const int ??? = 464; // 0x01D0 TargetType // public const int ??? = 480; // 0x01E0 EntityCount // public const int ??? = 488; // 0x01E8 GatheringStatus - public const int PlayerCharacterTargetActorId = 496; // 0x01F0 TargetID + public const int PlayerCharacterTargetActorId = 560; // 0x01F0 TargetID // public const int ??? = 5297; // 0x14B1 Status - public const int Customize = 6072; // 0x17B8 - public const int CompanyTag = 6096; // 0x17D0 - public const int BattleNpcTargetActorId = 6136; // 0x17F8 ClaimedByID - public const int NameId = 6248; // 0x1868 ModelID - public const int CurrentWorld = 6276; // 0x1884 - public const int HomeWorld = 6278; // 0x1886 - public const int CurrentHp = 6296; // 0x1898 HPCurrent - public const int MaxHp = 6300; // 0x189C HPMax - public const int CurrentMp = 6304; // 0x18A0 MPCurrent - public const int MaxMp = 6308; // 0x18A4 MPMax - public const int CurrentGp = 6314; // 0x18AA GPCurrent - public const int MaxGp = 6316; // 0x18AC GPMax - public const int CurrentCp = 6318; // 0x18AE CPCurrent - public const int MaxCp = 6320; // 0x18B0 CPMax + public const int Customize = 6264; // 0x17B8 + public const int CompanyTag = 1892; // 0x17D0 + public const int BattleNpcTargetActorId = 6328; // 0x17F8 ClaimedByID + public const int NameId = 6432; // 0x1868 ModelID + public const int CurrentWorld = 6460; // 0x1884 + public const int HomeWorld = 6462; // 0x1886 + public const int CurrentHp = 452; // 0x1898 HPCurrent + public const int MaxHp = 456; // 0x189C HPMax + public const int CurrentMp = 460; // 0x18A0 MPCurrent + public const int MaxMp = 464; // 0x18A4 MPMax + public const int CurrentGp = 468; // 0x18AA GPCurrent + public const int MaxGp = 472; // 0x18AC GPMax + public const int CurrentCp = 476; // 0x18AE CPCurrent + public const int MaxCp = 480; // 0x18B0 CPMax // public const int ??? = 6326; // 0x18B6 Title // public const int ??? = 6354; // 0x18D2 Icon // public const int ??? = 6356; // 0x18D4 ActionStatus - public const int ClassJob = 6362; // 0x18DA Job - public const int Level = 6364; // 0x18DC Level + public const int ClassJob = 482; // 0x18DA Job + public const int Level = 483; // 0x18DC Level // public const int ??? = 6367; // 0x18DF GrandCompany // public const int ??? = 6367; // 0x18DF GrandCompanyRank // public const int ??? = 6371; // 0x18E3 DifficultyRank