mirror of
https://github.com/Ottermandias/Glamourer.git
synced 2025-12-14 12:44:20 +01:00
Fix visor state toggle.
This commit is contained in:
parent
f69915dcb3
commit
9f04ee7695
1 changed files with 10 additions and 10 deletions
|
|
@ -13,7 +13,7 @@ public unsafe class MetaService : IDisposable
|
||||||
private readonly VisorStateChanged _visorEvent;
|
private readonly VisorStateChanged _visorEvent;
|
||||||
|
|
||||||
private delegate void HideHatGearDelegate(DrawDataContainer* drawData, uint id, byte value);
|
private delegate void HideHatGearDelegate(DrawDataContainer* drawData, uint id, byte value);
|
||||||
private delegate void HideWeaponsDelegate(DrawDataContainer* drawData, bool value);
|
private delegate void HideWeaponsDelegate(DrawDataContainer* drawData, byte value);
|
||||||
|
|
||||||
private readonly Hook<HideHatGearDelegate> _hideHatGearHook;
|
private readonly Hook<HideHatGearDelegate> _hideHatGearHook;
|
||||||
private readonly Hook<HideWeaponsDelegate> _hideWeaponsHook;
|
private readonly Hook<HideWeaponsDelegate> _hideWeaponsHook;
|
||||||
|
|
@ -61,7 +61,7 @@ public unsafe class MetaService : IDisposable
|
||||||
if (!actor.IsCharacter)
|
if (!actor.IsCharacter)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_hideWeaponsHook.Original(&actor.AsCharacter->DrawData, !value);
|
_hideWeaponsHook.Original(&actor.AsCharacter->DrawData, (byte)(value ? 0 : 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HideHatDetour(DrawDataContainer* drawData, uint id, byte value)
|
private void HideHatDetour(DrawDataContainer* drawData, uint id, byte value)
|
||||||
|
|
@ -80,21 +80,21 @@ public unsafe class MetaService : IDisposable
|
||||||
_hideHatGearHook.Original(drawData, id, value);
|
_hideHatGearHook.Original(drawData, id, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HideWeaponsDetour(DrawDataContainer* drawData, bool value)
|
private void HideWeaponsDetour(DrawDataContainer* drawData, byte value)
|
||||||
{
|
{
|
||||||
Actor actor = drawData->OwnerObject;
|
Actor actor = drawData->OwnerObject;
|
||||||
value = !value;
|
var v = value == 0;
|
||||||
_weaponEvent.Invoke(actor, ref value);
|
_weaponEvent.Invoke(actor, ref v);
|
||||||
value = !value;
|
|
||||||
Glamourer.Log.Verbose($"[MetaService] Hide Weapon triggered with 0x{(nint)drawData:X} {value} for {actor.Utf8Name}.");
|
Glamourer.Log.Verbose($"[MetaService] Hide Weapon triggered with 0x{(nint)drawData:X} {value} for {actor.Utf8Name}.");
|
||||||
_hideWeaponsHook.Original(drawData, value);
|
_hideWeaponsHook.Original(drawData, (byte)(v ? 0 : 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ToggleVisorDetour(DrawDataContainer* drawData, bool value)
|
private void ToggleVisorDetour(DrawDataContainer* drawData, byte value)
|
||||||
{
|
{
|
||||||
Actor actor = drawData->OwnerObject;
|
Actor actor = drawData->OwnerObject;
|
||||||
_visorEvent.Invoke(actor.Model, true, ref value);
|
var v = value != 0;
|
||||||
|
_visorEvent.Invoke(actor.Model, true, ref v);
|
||||||
Glamourer.Log.Verbose($"[MetaService] Toggle Visor triggered with 0x{(nint)drawData:X} {value} for {actor.Utf8Name}.");
|
Glamourer.Log.Verbose($"[MetaService] Toggle Visor triggered with 0x{(nint)drawData:X} {value} for {actor.Utf8Name}.");
|
||||||
_toggleVisorHook.Original(drawData, value);
|
_toggleVisorHook.Original(drawData, (byte)(v ? 1 : 0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue