diff options
author | Nikolay Korolev <nickvnuk@gmail.com> | 2020-05-02 17:02:17 +0200 |
---|---|---|
committer | Nikolay Korolev <nickvnuk@gmail.com> | 2020-05-02 17:02:17 +0200 |
commit | f372ce156d76350ef4705ecbf488b43484878ca2 (patch) | |
tree | edf87ceceb886b0f8fa9e57a6b357d0f2d670aed /src/peds/Ped.cpp | |
parent | Merge remote-tracking branch 'upstream/master' (diff) | |
download | re3-f372ce156d76350ef4705ecbf488b43484878ca2.tar re3-f372ce156d76350ef4705ecbf488b43484878ca2.tar.gz re3-f372ce156d76350ef4705ecbf488b43484878ca2.tar.bz2 re3-f372ce156d76350ef4705ecbf488b43484878ca2.tar.lz re3-f372ce156d76350ef4705ecbf488b43484878ca2.tar.xz re3-f372ce156d76350ef4705ecbf488b43484878ca2.tar.zst re3-f372ce156d76350ef4705ecbf488b43484878ca2.zip |
Diffstat (limited to 'src/peds/Ped.cpp')
-rw-r--r-- | src/peds/Ped.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp index f81ffb71..d2fa72c3 100644 --- a/src/peds/Ped.cpp +++ b/src/peds/Ped.cpp @@ -17732,3 +17732,45 @@ CPed::SetExitBoat(CVehicle *boat) // Not there in VC. CWaterLevel::FreeBoatWakeArray(); } + +#ifdef COMPATIBLE_SAVES +void +CPed::Save(uint8*& buf) +{ + SkipSaveBuf(buf, 52); + WriteSaveBuf<float>(buf, GetPosition().x); + WriteSaveBuf<float>(buf, GetPosition().y); + WriteSaveBuf<float>(buf, GetPosition().z); + SkipSaveBuf(buf, 288); + WriteSaveBuf<uint8>(buf, CharCreatedBy); + SkipSaveBuf(buf, 351); + WriteSaveBuf<float>(buf, m_fHealth); + WriteSaveBuf<float>(buf, m_fArmour); + SkipSaveBuf(buf, 148); + for (int i = 0; i < 13; i++) // has to be hardcoded + m_weapons[i].Save(buf); + SkipSaveBuf(buf, 5); + WriteSaveBuf<uint8>(buf, m_maxWeaponTypeAllowed); + SkipSaveBuf(buf, 162); +} + +void +CPed::Load(uint8*& buf) +{ + SkipSaveBuf(buf, 52); + GetPosition().x = ReadSaveBuf<float>(buf); + GetPosition().y = ReadSaveBuf<float>(buf); + GetPosition().z = ReadSaveBuf<float>(buf); + SkipSaveBuf(buf, 288); + CharCreatedBy = ReadSaveBuf<uint8>(buf); + SkipSaveBuf(buf, 351); + m_fHealth = ReadSaveBuf<float>(buf); + m_fArmour = ReadSaveBuf<float>(buf); + SkipSaveBuf(buf, 148); + for (int i = 0; i < 13; i++) // has to be hardcoded + m_weapons[i].Load(buf); + SkipSaveBuf(buf, 5); + m_maxWeaponTypeAllowed = ReadSaveBuf<uint8>(buf); + SkipSaveBuf(buf, 162); +} +#endif |