feat: add territorytype to client state

This commit is contained in:
goat 2020-03-25 01:39:46 +09:00
parent 00b263f08e
commit be3a07f1d4
3 changed files with 9 additions and 3 deletions

View file

@ -32,7 +32,6 @@ namespace Dalamud.Game.ClientState
/// <summary> /// <summary>
/// The local player character, if one is present. /// The local player character, if one is present.
/// </summary> /// </summary>
//public PlayerCharacter LocalPlayer { get; private set; }
public PlayerCharacter LocalPlayer { public PlayerCharacter LocalPlayer {
get { get {
var actor = this.Actors[0]; var actor = this.Actors[0];
@ -43,7 +42,8 @@ namespace Dalamud.Game.ClientState
return null; return null;
} }
} }
//public PlayerCharacter LocalPlayer => null;
public ushort TerritoryType => (ushort) Marshal.ReadInt16(Address.TerritoryType);
/// <summary> /// <summary>
/// The content ID of the local character. /// The content ID of the local character.
@ -73,6 +73,8 @@ namespace Dalamud.Game.ClientState
this.JobGauges = new JobGauges(Address); this.JobGauges = new JobGauges(Address);
Log.Verbose("TerritoryType address {TerritoryType}", Address.TerritoryType);
dalamud.Framework.OnUpdateEvent += FrameworkOnOnUpdateEvent; dalamud.Framework.OnUpdateEvent += FrameworkOnOnUpdateEvent;
} }

View file

@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.InteropServices;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Dalamud.Game.Internal; using Dalamud.Game.Internal;
@ -10,12 +11,14 @@ namespace Dalamud.Game.ClientState
public sealed class ClientStateAddressResolver : BaseAddressResolver { public sealed class ClientStateAddressResolver : BaseAddressResolver {
public IntPtr ActorTable { get; private set; } public IntPtr ActorTable { get; private set; }
public IntPtr LocalContentId { get; private set; } public IntPtr LocalContentId { get; private set; }
public IntPtr JobGaugeData { get; set; } public IntPtr JobGaugeData { get; private set; }
public IntPtr TerritoryType { get; private set; }
protected override void Setup64Bit(SigScanner sig) { protected override void Setup64Bit(SigScanner sig) {
ActorTable = sig.GetStaticAddressFromSig("48 8D 0D ?? ?? ?? ?? 85 ED", 0) + 0x148; ActorTable = sig.GetStaticAddressFromSig("48 8D 0D ?? ?? ?? ?? 85 ED", 0) + 0x148;
LocalContentId = sig.Module.BaseAddress + 0x1C2E000; LocalContentId = sig.Module.BaseAddress + 0x1C2E000;
JobGaugeData = sig.GetStaticAddressFromSig("E8 ?? ?? ?? ?? FF C6 48 8D 5B 0C", 0xB9) + 0x10; JobGaugeData = sig.GetStaticAddressFromSig("E8 ?? ?? ?? ?? FF C6 48 8D 5B 0C", 0xB9) + 0x10;
TerritoryType = sig.GetStaticAddressFromSig("E8 ?? ?? ?? ?? 0F B6 5F 12 8B C8", 0x26);
} }
} }
} }

View file

@ -73,6 +73,7 @@ namespace Dalamud.Interface
stateString += $"HomeWorldName: {this.dalamud.ClientState.LocalPlayer.HomeWorld.GameData.Name}\n"; stateString += $"HomeWorldName: {this.dalamud.ClientState.LocalPlayer.HomeWorld.GameData.Name}\n";
stateString += $"LocalCID: {this.dalamud.ClientState.LocalContentId:X}\n"; stateString += $"LocalCID: {this.dalamud.ClientState.LocalContentId:X}\n";
stateString += $"LastLinkedItem: {this.dalamud.Framework.Gui.Chat.LastLinkedItemId.ToString()}\n"; stateString += $"LastLinkedItem: {this.dalamud.Framework.Gui.Chat.LastLinkedItemId.ToString()}\n";
stateString += $"TerritoryType: {this.dalamud.ClientState.TerritoryType}\n";
for (var i = 0; i < this.dalamud.ClientState.Actors.Length; i++) { for (var i = 0; i < this.dalamud.ClientState.Actors.Length; i++) {
var actor = this.dalamud.ClientState.Actors[i]; var actor = this.dalamud.ClientState.Actors[i];