/// <summary> /// Set up the actor table collection. /// </summary> /// <param name="addressResolver">Client state address resolver.</param> public ActorTable(Dalamud dalamud, ClientStateAddressResolver addressResolver) { Address = addressResolver; this.dalamud = dalamud; Log.Verbose("Actor table address {ActorTable}", Address.ActorTable); }
/// <summary> /// Initializes a new instance of the <see cref="ObjectTable"/> class. /// </summary> /// <param name="dalamud">The <see cref="dalamud"/> instance.</param> /// <param name="addressResolver">Client state address resolver.</param> internal ObjectTable(Dalamud dalamud, ClientStateAddressResolver addressResolver) { this.dalamud = dalamud; this.address = addressResolver; Log.Verbose($"Object table address 0x{this.address.ObjectTable.ToInt64():X}"); }
/// <summary> /// Initializes a new instance of the <see cref="PartyList"/> class. /// </summary> /// <param name="dalamud">The <see cref="dalamud"/> instance.</param> /// <param name="addressResolver">Client state address resolver.</param> internal PartyList(Dalamud dalamud, ClientStateAddressResolver addressResolver) { this.dalamud = dalamud; this.address = addressResolver; Log.Verbose($"Group manager address 0x{this.address.GroupManager.ToInt64():X}"); }
/// <summary> /// Initializes a new instance of the <see cref="FateTable"/> class. /// </summary> /// <param name="dalamud">The <see cref="dalamud"/> instance.</param> /// <param name="addressResolver">Client state address resolver.</param> internal FateTable(Dalamud dalamud, ClientStateAddressResolver addressResolver) { this.address = addressResolver; this.dalamud = dalamud; Log.Verbose($"Fate table address 0x{this.address.FateTablePtr.ToInt64():X}"); }
/// <summary> /// Initializes a new instance of the <see cref="BuddyList"/> class. /// </summary> /// <param name="dalamud">The <see cref="dalamud"/> instance.</param> /// <param name="addressResolver">Client state address resolver.</param> internal BuddyList(Dalamud dalamud, ClientStateAddressResolver addressResolver) { this.dalamud = dalamud; this.address = addressResolver; Log.Verbose($"Buddy list address 0x{this.address.BuddyList.ToInt64():X}"); }
/// <summary> /// Initializes a new instance of the <see cref="AetheryteList"/> class. /// </summary> /// <param name="addressResolver">Client state address resolver.</param> internal AetheryteList(ClientStateAddressResolver addressResolver) { this.address = addressResolver; this.updateAetheryteListFunc = Marshal.GetDelegateForFunctionPointer <UpdateAetheryteListDelegate>(this.address.UpdateAetheryteList); Log.Verbose($"Teleport address 0x{this.address.Telepo.ToInt64():X}"); }
/// <summary> /// Initializes a new instance of the <see cref="KeyState"/> class. /// </summary> /// <param name="addressResolver">The ClientStateAddressResolver instance.</param> public KeyState(ClientStateAddressResolver addressResolver) { var moduleBaseAddress = Service <SigScanner> .Get().Module.BaseAddress; this.bufferBase = moduleBaseAddress + Marshal.ReadInt32(addressResolver.KeyboardState); Log.Verbose($"Keyboard state buffer address 0x{this.bufferBase.ToInt64():X}"); }
/// <summary> /// Set up the actor table collection. /// </summary> /// <param name="addressResolver">Client state address resolver.</param> public ActorTable(Dalamud dalamud, ClientStateAddressResolver addressResolver) { Address = addressResolver; this.dalamud = dalamud; dalamud.Framework.OnUpdateEvent += Framework_OnUpdateEvent; Log.Verbose("Actor table address {ActorTable}", Address.ActorTable); }
/// <summary> /// Initializes a new instance of the <see cref="ClientState"/> class. /// Set up client state access. /// </summary> internal ClientState() { this.address = new ClientStateAddressResolver(); this.address.Setup(); Log.Verbose("===== C L I E N T S T A T E ====="); this.ClientLanguage = Service <DalamudStartInfo> .Get().Language; Service <ObjectTable> .Set(this.address); Service <FateTable> .Set(this.address); Service <PartyList> .Set(this.address); Service <BuddyList> .Set(this.address); Service <JobGauges> .Set(this.address); Service <KeyState> .Set(this.address); Service <GamepadState> .Set(this.address); Service <Condition> .Set(this.address); Service <TargetManager> .Set(this.address); Log.Verbose($"SetupTerritoryType address 0x{this.address.SetupTerritoryType.ToInt64():X}"); this.setupTerritoryTypeHook = new Hook <SetupTerritoryTypeDelegate>(this.address.SetupTerritoryType, this.SetupTerritoryTypeDetour); var framework = Service <Framework> .Get(); framework.Update += this.FrameworkOnOnUpdateEvent; var networkHandlers = Service <NetworkHandlers> .Get(); networkHandlers.CfPop += this.NetworkHandlersOnCfPop; }
/// <summary> /// Initializes a new instance of the <see cref="GamepadState" /> class. /// </summary> /// <param name="resolver">Resolver knowing the pointer to the GamepadPoll function.</param> public GamepadState(ClientStateAddressResolver resolver) { Log.Verbose($"GamepadPoll address 0x{resolver.GamepadPoll.ToInt64():X}"); this.gamepadPoll = new Hook <ControllerPoll>(resolver.GamepadPoll, this.GamepadPollDetour); }
/// <summary> /// Initializes a new instance of the <see cref="Targets"/> class. /// </summary> /// <param name="dalamud">The Dalamud instance.</param> /// <param name="addressResolver">The ClientStateAddressResolver instance.</param> internal Targets(Dalamud dalamud, ClientStateAddressResolver addressResolver) { this.dalamud = dalamud; this.address = addressResolver; }
/// <summary> /// Initializes a new instance of the <see cref="KeyState"/> class. /// </summary> /// <param name="addressResolver">The ClientStateAddressResolver instance.</param> /// <param name="moduleBaseAddress">The base address of the main process module.</param> public KeyState(ClientStateAddressResolver addressResolver, IntPtr moduleBaseAddress) { this.bufferBase = moduleBaseAddress + Marshal.ReadInt32(addressResolver.KeyboardState); Log.Verbose($"Keyboard state buffer address 0x{this.bufferBase.ToInt64():X}"); }
/// <summary> /// Initializes a new instance of the <see cref="Condition"/> class. /// </summary> /// <param name="resolver">The ClientStateAddressResolver instance.</param> internal Condition(ClientStateAddressResolver resolver) { this.Address = resolver.ConditionFlags; }
/// <summary> /// Initializes a new instance of the <see cref="TargetManager"/> class. /// </summary> /// <param name="addressResolver">The ClientStateAddressResolver instance.</param> internal TargetManager(ClientStateAddressResolver addressResolver) { this.address = addressResolver; }
/// <summary> /// Initializes a new instance of the <see cref="Condition"/> class. /// </summary> /// <param name="resolver">The ClientStateAddressResolver instance.</param> internal Condition(ClientStateAddressResolver resolver) { this.ConditionArrayBase = resolver.ConditionFlags; }
/// <summary> /// Set up the actor table collection. /// </summary> /// <param name="addressResolver">Client state address resolver.</param> public ActorTable(ClientStateAddressResolver addressResolver) { Address = addressResolver; Log.Verbose("Actor table address {ActorTable}", Address.ActorTable); }