Skip to content

Commit 58d1526

Browse files
committed
Addendum to last. Downgrading seems counter-intuitive but it's to solve a netcode issue (temp solution)
1 parent b6934b0 commit 58d1526

File tree

6 files changed

+19
-12
lines changed

6 files changed

+19
-12
lines changed

Client/core/CModelCacheManager.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class CModelCacheManagerImpl : public CModelCacheManager
4747
virtual void OnClientClose();
4848
virtual void UpdatePedModelCaching(const std::map<ushort, float>& newNeedCacheList);
4949
virtual void UpdateVehicleModelCaching(const std::map<ushort, float>& newNeedCacheList);
50-
virtual void SetCustomLimits(std::optional<size_t> numVehicles, std::optional<size_t> numPeds);
50+
virtual void SetCustomLimits(const size_t* numVehicles, const size_t* numPeds);
5151

5252
// CModelCacheManagerImpl methods
5353
CModelCacheManagerImpl();
@@ -222,15 +222,15 @@ void CModelCacheManagerImpl::GetStats(SModelCacheStats& outStats)
222222
// CModelCacheManagerImpl::SetCustomLimits
223223
//
224224
// Function to set custom limits, instead of calculating them automatically.
225-
// If the optional is empty, the value is restored to the automatic one
226-
// otherwise it is set to whatever value the opt contains
225+
// If the pointer is nullptr, the value is restored to the automatic one
226+
// otherwise it is set to whatever value the pointer points to
227227
//
228228
///////////////////////////////////////////////////////////////
229-
void CModelCacheManagerImpl::SetCustomLimits(std::optional<size_t> numVehicles, std::optional<size_t> numPeds) {
230-
if (m_IsUsingCustomPedCacheLimit = numPeds.has_value()) {
229+
void CModelCacheManagerImpl::SetCustomLimits(const size_t* numVehicles, const size_t* numPeds) {
230+
if (m_IsUsingCustomPedCacheLimit = (numPeds != nullptr)) {
231231
m_uiMaxCachedPedModels = *numPeds;
232232
}
233-
if (m_IsUsingCustomVehicleCacheLimit = numVehicles.has_value()) {
233+
if (m_IsUsingCustomVehicleCacheLimit = (numVehicles != nullptr)) {
234234
m_uiMaxCachedVehicleModels = *numVehicles;
235235
}
236236
}

Client/core/CModelCacheManager.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77
*
88
*****************************************************************************/
99

10+
#pragma once
11+
12+
#include <map>
13+
1014
struct SModelCacheStats;
1115

1216
class CModelCacheManager
@@ -22,7 +26,7 @@ class CModelCacheManager
2226
virtual void OnClientClose() = 0;
2327
virtual void UpdatePedModelCaching(const std::map<ushort, float>& newNeedCacheList) = 0;
2428
virtual void UpdateVehicleModelCaching(const std::map<ushort, float>& newNeedCacheList) = 0;
25-
virtual void SetCustomLimits(std::optional<size_t> numVehicles, std::optional<size_t> numPeds) = 0;
29+
virtual void SetCustomLimits(const size_t* numVehicles, const size_t* numPeds) = 0;
2630
};
2731

2832
CModelCacheManager* NewModelCacheManager();

Client/core/StdInc.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
#include <cstdlib>
3333
#include <iomanip>
3434
#include <functional>
35-
#include <optional>
3635

3736
// Localization
3837
#include "../../vendor/tinygettext/tinygettext.hpp"

Client/mods/deathmatch/logic/CClientModelCacheManager.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class CClientModelCacheManagerImpl : public CClientModelCacheManager
3838
// CClientModelCacheManager interface
3939
virtual void DoPulse();
4040
virtual void OnRestreamModel(ushort usModelId);
41-
virtual void SetCustomLimits(std::optional<size_t> numVehicles, std::optional<size_t> numPeds);
41+
virtual void SetCustomLimits(const size_t* numVehicles, const size_t* numPeds);
4242

4343
// CClientModelCacheManagerImpl methods
4444
CClientModelCacheManagerImpl();
@@ -520,7 +520,7 @@ void CClientModelCacheManagerImpl::OnRestreamModel(ushort usModelId)
520520
m_pCoreModelCacheManager->OnRestreamModel(usModelId);
521521
}
522522

523-
void CClientModelCacheManagerImpl::SetCustomLimits(std::optional<size_t> numVehicles, std::optional<size_t> numPeds)
523+
void CClientModelCacheManagerImpl::SetCustomLimits(const size_t* numVehicles, const size_t* numPeds)
524524
{
525525
m_pCoreModelCacheManager->SetCustomLimits(numVehicles, numPeds);
526526
}

Client/mods/deathmatch/logic/CClientModelCacheManager.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class CClientModelCacheManager
1515
// CClientModelCacheManager interface
1616
virtual void DoPulse() = 0;
1717
virtual void OnRestreamModel(ushort usModelId) = 0;
18-
virtual void SetCustomLimits(std::optional<size_t> numVehicles, std::optional<size_t> numPeds) = 0;
18+
virtual void SetCustomLimits(const size_t* numVehicles, const size_t* numPeds) = 0;
1919
};
2020

2121
CClientModelCacheManager* NewClientModelCacheManager();

Client/mods/deathmatch/logic/luadefs/CLuaEngineDefs.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@
2121
//! Set the CModelCacheManager limits
2222
//! By passing `nil`/no value the original values are restored
2323
void EngineStreamingSetModelCacheLimits(std::optional<size_t> numVehicles, std::optional<size_t> numPeds) {
24-
g_pClientGame->GetModelCacheManager()->SetCustomLimits(numVehicles, numPeds);
24+
size_t vehicleValue = numVehicles.value_or(0);
25+
size_t pedValue = numPeds.value_or(0);
26+
const size_t* pVehicles = numVehicles.has_value() ? &vehicleValue : nullptr;
27+
const size_t* pPeds = numPeds.has_value() ? &pedValue : nullptr;
28+
g_pClientGame->GetModelCacheManager()->SetCustomLimits(pVehicles, pPeds);
2529
}
2630

2731
void EngineStreamingFreeUpMemory(std::uint32_t bytes)

0 commit comments

Comments
 (0)