diff options
author | aap <aap@papnet.eu> | 2019-07-01 07:16:45 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-01 07:16:45 +0200 |
commit | 95644386473d0990007b6e2513a8f187af675a41 (patch) | |
tree | 92e6bfba49d11f7f41c7daa4ea593eb6c128555a /src/weapons/Weapon.cpp | |
parent | Merge pull request #81 from Nick007J/master (diff) | |
parent | Merge branch 'master' of git://github.com/GTAmodding/re3 into erorcun (diff) | |
download | re3-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.cpp | 37 |
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 |