diff options
author | Nikolay Korolev <nickvnuk@gmail.com> | 2020-05-14 21:29:23 +0200 |
---|---|---|
committer | Nikolay Korolev <nickvnuk@gmail.com> | 2020-05-14 21:29:23 +0200 |
commit | 09a0207e55ac8a69639c85997c330ec0f7caf4a6 (patch) | |
tree | f7784f9199ee39054ca94a1f6cf5de880c7c243f /src/peds/Ped.cpp | |
parent | more pedattractor (diff) | |
parent | Fix compilation (diff) | |
download | re3-09a0207e55ac8a69639c85997c330ec0f7caf4a6.tar re3-09a0207e55ac8a69639c85997c330ec0f7caf4a6.tar.gz re3-09a0207e55ac8a69639c85997c330ec0f7caf4a6.tar.bz2 re3-09a0207e55ac8a69639c85997c330ec0f7caf4a6.tar.lz re3-09a0207e55ac8a69639c85997c330ec0f7caf4a6.tar.xz re3-09a0207e55ac8a69639c85997c330ec0f7caf4a6.tar.zst re3-09a0207e55ac8a69639c85997c330ec0f7caf4a6.zip |
Diffstat (limited to 'src/peds/Ped.cpp')
-rw-r--r-- | src/peds/Ped.cpp | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp index 4c3727cf..1441e1d5 100644 --- a/src/peds/Ped.cpp +++ b/src/peds/Ped.cpp @@ -16337,7 +16337,11 @@ CPed::SeekCar(void) } if (dest.x == 0.0f && dest.y == 0.0f) { +#ifdef FIX_BUGS + if ((!IsPlayer() && CharCreatedBy != MISSION_CHAR) || vehToSeek->VehicleCreatedBy != MISSION_VEHICLE || vehToSeek->pDriver || !vehToSeek->CanPedOpenLocks(this)) { +#else if ((!IsPlayer() && CharCreatedBy != MISSION_CHAR) || vehToSeek->VehicleCreatedBy != MISSION_VEHICLE || vehToSeek->pDriver) { +#endif RestorePreviousState(); if (IsPlayer()) { ClearObjective(); @@ -18020,23 +18024,25 @@ CPed::ClearWaitState(void) } #ifdef COMPATIBLE_SAVES +#define CopyFromBuf(buf, data) memcpy(&data, buf, sizeof(data)); SkipSaveBuf(buf, sizeof(data)); +#define CopyToBuf(buf, data) memcpy(buf, &data, sizeof(data)); SkipSaveBuf(buf, sizeof(data)); void CPed::Save(uint8*& buf) { SkipSaveBuf(buf, 52); - WriteSaveBuf<float>(buf, GetPosition().x); - WriteSaveBuf<float>(buf, GetPosition().y); - WriteSaveBuf<float>(buf, GetPosition().z); + CopyToBuf(buf, GetPosition().x); + CopyToBuf(buf, GetPosition().y); + CopyToBuf(buf, GetPosition().z); SkipSaveBuf(buf, 288); - WriteSaveBuf<uint8>(buf, CharCreatedBy); + CopyToBuf(buf, CharCreatedBy); SkipSaveBuf(buf, 351); - WriteSaveBuf<float>(buf, m_fHealth); - WriteSaveBuf<float>(buf, m_fArmour); + CopyToBuf(buf, m_fHealth); + CopyToBuf(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); + CopyToBuf(buf, m_maxWeaponTypeAllowed); SkipSaveBuf(buf, 162); } @@ -18044,19 +18050,21 @@ void CPed::Load(uint8*& buf) { SkipSaveBuf(buf, 52); - GetMatrix().GetPosition().x = ReadSaveBuf<float>(buf); - GetMatrix().GetPosition().y = ReadSaveBuf<float>(buf); - GetMatrix().GetPosition().z = ReadSaveBuf<float>(buf); + CopyFromBuf(buf, GetMatrix().GetPosition().x); + CopyFromBuf(buf, GetMatrix().GetPosition().y); + CopyFromBuf(buf, GetMatrix().GetPosition().z); SkipSaveBuf(buf, 288); - CharCreatedBy = ReadSaveBuf<uint8>(buf); + CopyFromBuf(buf, CharCreatedBy); SkipSaveBuf(buf, 351); - m_fHealth = ReadSaveBuf<float>(buf); - m_fArmour = ReadSaveBuf<float>(buf); + CopyFromBuf(buf, m_fHealth); + CopyFromBuf(buf, m_fArmour); 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); + CopyFromBuf(buf, m_maxWeaponTypeAllowed); SkipSaveBuf(buf, 162); } +#undef CopyFromBuf +#undef CopyToBuf #endif |