From f372ce156d76350ef4705ecbf488b43484878ca2 Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Sat, 2 May 2020 18:02:17 +0300 Subject: changed saving compatibility --- src/weapons/Weapon.cpp | 28 +++++++++++++++++++++++++++- src/weapons/Weapon.h | 5 +++++ 2 files changed, 32 insertions(+), 1 deletion(-) (limited to 'src/weapons') diff --git a/src/weapons/Weapon.cpp b/src/weapons/Weapon.cpp index 9897e73f..e9b917de 100644 --- a/src/weapons/Weapon.cpp +++ b/src/weapons/Weapon.cpp @@ -2257,4 +2257,30 @@ bool CWeapon::ProcessLineOfSight(CVector const &point1, CVector const &point2, CColPoint &point, CEntity *&entity, eWeaponType type, CEntity *shooter, bool checkBuildings, bool checkVehicles, bool checkPeds, bool checkObjects, bool checkDummies, bool ignoreSeeThrough, bool ignoreSomeObjects) { return CWorld::ProcessLineOfSight(point1, point2, point, entity, checkBuildings, checkVehicles, checkPeds, checkObjects, checkDummies, ignoreSeeThrough, ignoreSomeObjects); -} \ No newline at end of file +} + +#ifdef COMPATIBLE_SAVES +void +CWeapon::Save(uint8*& buf) +{ + WriteSaveBuf(buf, m_eWeaponType); + WriteSaveBuf(buf, m_eWeaponState); + WriteSaveBuf(buf, m_nAmmoInClip); + WriteSaveBuf(buf, m_nAmmoTotal); + WriteSaveBuf(buf, m_nTimer); + WriteSaveBuf(buf, m_bAddRotOffset); + SkipSaveBuf(buf, 3); +} + +void +CWeapon::Load(uint8*& buf) +{ + m_eWeaponType = (eWeaponType)ReadSaveBuf(buf); + m_eWeaponState = (eWeaponState)ReadSaveBuf(buf); + m_nAmmoInClip = ReadSaveBuf(buf); + m_nAmmoTotal = ReadSaveBuf(buf); + m_nTimer = ReadSaveBuf(buf); + m_bAddRotOffset = ReadSaveBuf(buf); + SkipSaveBuf(buf, 3); +} +#endif diff --git a/src/weapons/Weapon.h b/src/weapons/Weapon.h index 2c3a9657..1b2c0320 100644 --- a/src/weapons/Weapon.h +++ b/src/weapons/Weapon.h @@ -67,6 +67,11 @@ public: bool HasWeaponAmmoToBeUsed(void); static bool ProcessLineOfSight(CVector const &point1, CVector const &point2, CColPoint &point, CEntity *&entity, eWeaponType type, CEntity *shooter, bool checkBuildings, bool checkVehicles, bool checkPeds, bool checkObjects, bool checkDummies, bool ignoreSeeThrough, bool ignoreSomeObjects); + +#ifdef COMPATIBLE_SAVES + void Save(uint8*& buf); + void Load(uint8*& buf); +#endif }; VALIDATE_SIZE(CWeapon, 0x18); -- cgit v1.2.3