From 99a9add25cef6dca55346665a3b41242a8bbbbc0 Mon Sep 17 00:00:00 2001 From: gromchek Date: Thu, 17 Aug 2023 21:00:00 +0300 Subject: [PATCH] New effect: Dual Wield weapons --- .../unsorted/DualWieldWeaponsEffect.cpp | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/gtasa/effects/custom/unsorted/DualWieldWeaponsEffect.cpp diff --git a/src/gtasa/effects/custom/unsorted/DualWieldWeaponsEffect.cpp b/src/gtasa/effects/custom/unsorted/DualWieldWeaponsEffect.cpp new file mode 100644 index 00000000..65867c34 --- /dev/null +++ b/src/gtasa/effects/custom/unsorted/DualWieldWeaponsEffect.cpp @@ -0,0 +1,40 @@ +#include "util/EffectBase.h" +#include "util/GameUtil.h" + +class DualWieldWeaponsEffect : public EffectBase +{ + std::array isTwinPistol; + +public: + void + OnStart (EffectInstance *inst) override + { + isTwinPistol.fill (0); + for (int i = 0; i < MAX_WEAPON_INFOS; i++) + { + CWeaponInfo *p = aWeaponInfo + i; + isTwinPistol[i] = p->m_nFlags.bTwinPistol; + } + } + void + OnEnd (EffectInstance *inst) override + { + for (int i = 0; i < MAX_WEAPON_INFOS; i++) + { + CWeaponInfo *p = aWeaponInfo + i; + p->m_nFlags.bTwinPistol = isTwinPistol[i]; + } + } + void + OnTick (EffectInstance *inst) override + { + for (int i = 0; i < MAX_WEAPON_INFOS; i++) + { + CWeaponInfo *p = aWeaponInfo + i; + p->m_nFlags.bTwinPistol = 1; + } + } +}; + +DEFINE_EFFECT (DualWieldWeaponsEffect, "effect_dual_wield_weapons", + GROUP_WEAPONS); \ No newline at end of file