Merge pull request #378 from SheepGoMeh/master

Add StatusFlags to Chara
This commit is contained in:
goaaats 2021-06-24 21:14:35 +02:00 committed by GitHub
commit 8161fafc9e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 69 additions and 1 deletions

View file

@ -0,0 +1,56 @@
using System;
namespace Dalamud.Game.ClientState.Actors
{
/// <summary>
/// Enum describing possible status flags.
/// </summary>
[Flags]
public enum StatusFlags : byte
{
/// <summary>
/// No status flags set.
/// </summary>
None = 0,
/// <summary>
/// Hostile actor.
/// </summary>
Hostile = 1,
/// <summary>
/// Actor in combat.
/// </summary>
InCombat = 2,
/// <summary>
/// Actor weapon is out.
/// </summary>
WeaponOut = 4,
/// <summary>
/// Actor offhand is out.
/// </summary>
OffhandOut = 8,
/// <summary>
/// Actor is a party member.
/// </summary>
PartyMember = 16,
/// <summary>
/// Actor is a alliance member.
/// </summary>
AllianceMember = 32,
/// <summary>
/// Actor is in friend list.
/// </summary>
Friend = 64,
/// <summary>
/// Actor is casting.
/// </summary>
IsCasting = 128,
}
}

View file

@ -76,5 +76,10 @@ namespace Dalamud.Game.ClientState.Actors.Types
/// Indexed by <see cref="CustomizeIndex"/>.
/// </summary>
public byte[] Customize => this.ActorStruct.Customize;
/// <summary>
/// Gets status Effects.
/// </summary>
public StatusFlags StatusFlags => this.ActorStruct.StatusFlags;
}
}

View file

@ -231,6 +231,12 @@ namespace Dalamud.Game.ClientState.Structs
[FieldOffset(ActorOffsets.TotalCastTime)]
public float TotalCastTime;
/// <summary>
/// Actor status flags.
/// </summary>
[FieldOffset(ActorOffsets.StatusFlags)]
public StatusFlags StatusFlags;
/// <summary>
/// The array of status effects that the actor is currently affected by.
/// </summary>
@ -284,6 +290,7 @@ namespace Dalamud.Game.ClientState.Structs
public const int CurrentCastTargetActorId = 0x1B90;
public const int CurrentCastTime = 0x1BB4;
public const int TotalCastTime = 0x1BB8;
public const int StatusFlags = 0x19A0;
public const int UIStatusEffects = 0x19F8;
}
}

View file

@ -696,7 +696,7 @@ namespace Dalamud.Interface
if (actor is Chara chara)
{
actorString +=
$" Level: {chara.Level} ClassJob: {(this.resolveGameData ? chara.ClassJob.GameData.Name : chara.ClassJob.Id.ToString())} CHP: {chara.CurrentHp} MHP: {chara.MaxHp} CMP: {chara.CurrentMp} MMP: {chara.MaxMp}\n Customize: {BitConverter.ToString(chara.Customize).Replace("-", " ")}\n";
$" Level: {chara.Level} ClassJob: {(this.resolveGameData ? chara.ClassJob.GameData.Name : chara.ClassJob.Id.ToString())} CHP: {chara.CurrentHp} MHP: {chara.MaxHp} CMP: {chara.CurrentMp} MMP: {chara.MaxMp}\n Customize: {BitConverter.ToString(chara.Customize).Replace("-", " ")} StatusFlags: {chara.StatusFlags}\n";
}
if (actor is PlayerCharacter pc)