Fix load order dependency on weapon load.

This commit is contained in:
Ottermandias 2024-01-18 22:44:55 +01:00
parent 092e0ee30e
commit 59131ec191

View file

@ -42,7 +42,6 @@ public unsafe class WeaponService : IDisposable
private readonly Hook<LoadWeaponDelegate> _loadWeaponHook; private readonly Hook<LoadWeaponDelegate> _loadWeaponHook;
private void LoadWeaponDetour(DrawDataContainer* drawData, uint slot, ulong weaponValue, byte redrawOnEquality, byte unk2, private void LoadWeaponDetour(DrawDataContainer* drawData, uint slot, ulong weaponValue, byte redrawOnEquality, byte unk2,
byte skipGameObject, byte unk4) byte skipGameObject, byte unk4)
{ {
@ -80,7 +79,7 @@ public unsafe class WeaponService : IDisposable
} }
else else
{ {
_original(drawData, slot, weaponValue, redrawOnEquality, unk2, skipGameObject, unk4); _loadWeaponHook.Original(drawData, slot, weaponValue, redrawOnEquality, unk2, skipGameObject, unk4);
} }
} }
@ -91,18 +90,18 @@ public unsafe class WeaponService : IDisposable
{ {
case EquipSlot.MainHand: case EquipSlot.MainHand:
_inUpdate.Value = true; _inUpdate.Value = true;
_loadWeaponHook.Original(&character.AsCharacter->DrawData, 0, weapon.Value, 1, 0, 1, 0); _original(&character.AsCharacter->DrawData, 0, weapon.Value, 1, 0, 1, 0);
_inUpdate.Value = false; _inUpdate.Value = false;
return; return;
case EquipSlot.OffHand: case EquipSlot.OffHand:
_inUpdate.Value = true; _inUpdate.Value = true;
_loadWeaponHook.Original(&character.AsCharacter->DrawData, 1, weapon.Value, 1, 0, 1, 0); _original(&character.AsCharacter->DrawData, 1, weapon.Value, 1, 0, 1, 0);
_inUpdate.Value = false; _inUpdate.Value = false;
return; return;
case EquipSlot.BothHand: case EquipSlot.BothHand:
_inUpdate.Value = true; _inUpdate.Value = true;
_loadWeaponHook.Original(&character.AsCharacter->DrawData, 0, weapon.Value, 1, 0, 1, 0); _original(&character.AsCharacter->DrawData, 0, weapon.Value, 1, 0, 1, 0);
_loadWeaponHook.Original(&character.AsCharacter->DrawData, 1, CharacterWeapon.Empty.Value, 1, 0, 1, 0); _original(&character.AsCharacter->DrawData, 1, CharacterWeapon.Empty.Value, 1, 0, 1, 0);
_inUpdate.Value = false; _inUpdate.Value = false;
return; return;
} }