mirror of
https://github.com/Ottermandias/Glamourer.git
synced 2026-02-20 06:27:43 +01:00
Remove offsets for CS.
This commit is contained in:
parent
3ac6714033
commit
5561306a39
2 changed files with 18 additions and 62 deletions
|
|
@ -5,7 +5,7 @@ namespace Glamourer;
|
||||||
public static class CharacterExtensions
|
public static class CharacterExtensions
|
||||||
{
|
{
|
||||||
public static unsafe bool IsWet(this Character a)
|
public static unsafe bool IsWet(this Character a)
|
||||||
=> (*((byte*)a.Address + Offsets.Character.Wetness) & Offsets.Character.Flags.IsWet) != 0;
|
=> ((FFXIVClientStructs.FFXIV.Client.Game.Character.Character*) a.Address)->IsGPoseWet;
|
||||||
|
|
||||||
public static unsafe bool SetWetness(this Character a, bool value)
|
public static unsafe bool SetWetness(this Character a, bool value)
|
||||||
{
|
{
|
||||||
|
|
@ -13,17 +13,12 @@ public static class CharacterExtensions
|
||||||
if (current == value)
|
if (current == value)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (value)
|
((FFXIVClientStructs.FFXIV.Client.Game.Character.Character*)a.Address)->IsGPoseWet = value;
|
||||||
*((byte*)a.Address + Offsets.Character.Wetness) =
|
|
||||||
(byte)(*((byte*)a.Address + Offsets.Character.Wetness) | Offsets.Character.Flags.IsWet);
|
|
||||||
else
|
|
||||||
*((byte*)a.Address + Offsets.Character.Wetness) =
|
|
||||||
(byte)(*((byte*)a.Address + Offsets.Character.Wetness) & ~Offsets.Character.Flags.IsWet);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static unsafe bool IsHatVisible(this Character a)
|
public static unsafe bool IsHatVisible(this Character a)
|
||||||
=> (*((byte*)a.Address + Offsets.Character.HatVisible) & Offsets.Character.Flags.IsHatHidden) == 0;
|
=> !((FFXIVClientStructs.FFXIV.Client.Game.Character.Character*)a.Address)->DrawData.IsHatHidden;
|
||||||
|
|
||||||
public static unsafe bool SetHatVisible(this Character a, bool visible)
|
public static unsafe bool SetHatVisible(this Character a, bool visible)
|
||||||
{
|
{
|
||||||
|
|
@ -31,18 +26,12 @@ public static class CharacterExtensions
|
||||||
if (current == visible)
|
if (current == visible)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (visible)
|
((FFXIVClientStructs.FFXIV.Client.Game.Character.Character*)a.Address)->DrawData.IsHatHidden = !visible;
|
||||||
*((byte*)a.Address + Offsets.Character.HatVisible) =
|
|
||||||
(byte)(*((byte*)a.Address + Offsets.Character.HatVisible) & ~Offsets.Character.Flags.IsHatHidden);
|
|
||||||
else
|
|
||||||
*((byte*)a.Address + Offsets.Character.HatVisible) =
|
|
||||||
(byte)(*((byte*)a.Address + Offsets.Character.HatVisible) | Offsets.Character.Flags.IsHatHidden);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static unsafe bool IsVisorToggled(this Character a)
|
public static unsafe bool IsVisorToggled(this Character a)
|
||||||
=> (*((byte*)a.Address + Offsets.Character.VisorToggled) & Offsets.Character.Flags.IsVisorToggled)
|
=> ((FFXIVClientStructs.FFXIV.Client.Game.Character.Character*)a.Address)->DrawData.IsVisorToggled;
|
||||||
== Offsets.Character.Flags.IsVisorToggled;
|
|
||||||
|
|
||||||
public static unsafe bool SetVisorToggled(this Character a, bool toggled)
|
public static unsafe bool SetVisorToggled(this Character a, bool toggled)
|
||||||
{
|
{
|
||||||
|
|
@ -50,20 +39,13 @@ public static class CharacterExtensions
|
||||||
if (current == toggled)
|
if (current == toggled)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (toggled)
|
((FFXIVClientStructs.FFXIV.Client.Game.Character.Character*)a.Address)->DrawData.IsVisorToggled = toggled;
|
||||||
*((byte*)a.Address + Offsets.Character.VisorToggled) =
|
|
||||||
(byte)(*((byte*)a.Address + Offsets.Character.VisorToggled) | Offsets.Character.Flags.IsVisorToggled);
|
|
||||||
else
|
|
||||||
*((byte*)a.Address + Offsets.Character.VisorToggled) =
|
|
||||||
(byte)(*((byte*)a.Address + Offsets.Character.VisorToggled) & ~Offsets.Character.Flags.IsVisorToggled);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static unsafe bool IsWeaponHidden(this Character a)
|
public static unsafe bool IsWeaponHidden(this Character a)
|
||||||
=> (*((byte*)a.Address + Offsets.Character.WeaponHidden1) & Offsets.Character.Flags.IsWeaponHidden1)
|
=> ((FFXIVClientStructs.FFXIV.Client.Game.Character.Character*)a.Address)->DrawData.IsWeaponHidden
|
||||||
== Offsets.Character.Flags.IsWeaponHidden1
|
&& ((FFXIVClientStructs.FFXIV.Client.Game.Character.Character*)a.Address)->DrawData.IsMainHandHidden;
|
||||||
&& (*((byte*)a.Address + Offsets.Character.WeaponHidden2) & Offsets.Character.Flags.IsWeaponHidden2)
|
|
||||||
== Offsets.Character.Flags.IsWeaponHidden2;
|
|
||||||
|
|
||||||
public static unsafe bool SetWeaponHidden(this Character a, bool value)
|
public static unsafe bool SetWeaponHidden(this Character a, bool value)
|
||||||
{
|
{
|
||||||
|
|
@ -71,22 +53,19 @@ public static class CharacterExtensions
|
||||||
if (hidden == value)
|
if (hidden == value)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var val1 = *((byte*)a.Address + Offsets.Character.WeaponHidden1);
|
var drawData = &((FFXIVClientStructs.FFXIV.Client.Game.Character.Character*)a.Address)->DrawData;
|
||||||
var val2 = *((byte*)a.Address + Offsets.Character.WeaponHidden2);
|
|
||||||
if (value)
|
|
||||||
{
|
|
||||||
*((byte*)a.Address + Offsets.Character.WeaponHidden1) = (byte)(val1 | Offsets.Character.Flags.IsWeaponHidden1);
|
|
||||||
*((byte*)a.Address + Offsets.Character.WeaponHidden2) = (byte)(val2 | Offsets.Character.Flags.IsWeaponHidden2);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
*((byte*)a.Address + Offsets.Character.WeaponHidden1) = (byte)(val1 & ~Offsets.Character.Flags.IsWeaponHidden1);
|
|
||||||
*((byte*)a.Address + Offsets.Character.WeaponHidden2) = (byte)(val2 & ~Offsets.Character.Flags.IsWeaponHidden2);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
drawData->IsWeaponHidden = value;
|
||||||
|
drawData->IsMainHandHidden = value;
|
||||||
|
// TODO
|
||||||
|
if (value)
|
||||||
|
*(&drawData->MainHandState + ((long) &drawData->OffHandModel - (long) &drawData->MainHandModel)) |= 0x02;
|
||||||
|
else
|
||||||
|
*(&drawData->MainHandState + ((long) &drawData->OffHandModel - (long) &drawData->MainHandModel)) &= 0xFD;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static unsafe ref float Alpha(this Character a)
|
public static unsafe ref float Alpha(this Character a)
|
||||||
=> ref *(float*)((byte*)a.Address + Offsets.Character.Alpha);
|
=> ref ((FFXIVClientStructs.FFXIV.Client.Game.Character.Character*)a.Address)->Alpha;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
namespace Glamourer;
|
|
||||||
|
|
||||||
public static class Offsets
|
|
||||||
{
|
|
||||||
public static class Character
|
|
||||||
{
|
|
||||||
public const int Wetness = 0x1B3A;
|
|
||||||
public const int HatVisible = 0x876;
|
|
||||||
public const int VisorToggled = 0x877;
|
|
||||||
public const int WeaponHidden1 = 0x877;
|
|
||||||
public const int WeaponHidden2 = 0x754;
|
|
||||||
public const int Alpha = 0x1A4C;
|
|
||||||
|
|
||||||
public static class Flags
|
|
||||||
{
|
|
||||||
public const byte IsHatHidden = 0x01;
|
|
||||||
public const byte IsVisorToggled = 0x08;
|
|
||||||
public const byte IsWet = 0x20;
|
|
||||||
public const byte IsWeaponHidden1 = 0x01;
|
|
||||||
public const byte IsWeaponHidden2 = 0x02;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue