summaryrefslogtreecommitdiffstats
path: root/src/weapons/Weapon.cpp
diff options
context:
space:
mode:
authoraap <aap@papnet.eu>2019-07-01 07:16:45 +0200
committerGitHub <noreply@github.com>2019-07-01 07:16:45 +0200
commit95644386473d0990007b6e2513a8f187af675a41 (patch)
tree92e6bfba49d11f7f41c7daa4ea593eb6c128555a /src/weapons/Weapon.cpp
parentMerge pull request #81 from Nick007J/master (diff)
parentMerge branch 'master' of git://github.com/GTAmodding/re3 into erorcun (diff)
downloadre3-95644386473d0990007b6e2513a8f187af675a41.tar
re3-95644386473d0990007b6e2513a8f187af675a41.tar.gz
re3-95644386473d0990007b6e2513a8f187af675a41.tar.bz2
re3-95644386473d0990007b6e2513a8f187af675a41.tar.lz
re3-95644386473d0990007b6e2513a8f187af675a41.tar.xz
re3-95644386473d0990007b6e2513a8f187af675a41.tar.zst
re3-95644386473d0990007b6e2513a8f187af675a41.zip
Diffstat (limited to 'src/weapons/Weapon.cpp')
-rw-r--r--src/weapons/Weapon.cpp37
1 files changed, 36 insertions, 1 deletions
diff --git a/src/weapons/Weapon.cpp b/src/weapons/Weapon.cpp
index fea09245..0c48db6b 100644
--- a/src/weapons/Weapon.cpp
+++ b/src/weapons/Weapon.cpp
@@ -1,6 +1,41 @@
#include "common.h"
#include "patcher.h"
#include "Weapon.h"
+#include "Timer.h"
+#include "WeaponInfo.h"
WRAPPER bool CWeapon::Fire(CEntity*, CVector*) { EAXJMP(0x55C380); }
-WRAPPER void CWeapon::AddGunshell(CEntity*, CVector const&, CVector2D const&, float) { EAXJMP(0x55F770); } \ No newline at end of file
+WRAPPER void CWeapon::AddGunshell(CEntity*, CVector const&, CVector2D const&, float) { EAXJMP(0x55F770); }
+
+void
+CWeapon::Initialise(eWeaponType type, int ammo)
+{
+ m_eWeaponType = type;
+ m_eWeaponState = WEAPONSTATE_READY;
+ if (ammo > 99999)
+ m_nAmmoTotal = 99999;
+ else
+ m_nAmmoTotal = ammo;
+ m_nAmmoInClip = 0;
+ Reload();
+ m_nTimer = 0;
+}
+
+void
+CWeapon::Reload(void)
+{
+ if (m_nAmmoTotal == 0)
+ return;
+
+ CWeaponInfo *info = CWeaponInfo::GetWeaponInfo(m_eWeaponType);
+
+ if (m_nAmmoTotal >= info->m_nAmountofAmmunition)
+ m_nAmmoInClip = info->m_nAmountofAmmunition;
+ else
+ m_nAmmoInClip = m_nAmmoTotal;
+}
+
+STARTPATCHES
+ InjectHook(0x55C330, &CWeapon::Initialise, PATCH_JUMP);
+ InjectHook(0x5639D0, &CWeapon::Reload, PATCH_JUMP);
+ENDPATCHES \ No newline at end of file