mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
Some mdlcache error handling improvements
This commit is contained in:
parent
aedc722a8f
commit
325fee107b
@ -197,7 +197,15 @@ studiohdr_t* CMDLCache::FindUncachedMDL(CMDLCache* cache, MDLHandle_t handle, vo
|
||||
else
|
||||
{
|
||||
v_CMDLCache__FindCachedMDL(cache, a3, a4);
|
||||
v17 = **(studiohdr_t***)a3;
|
||||
if ((__int64)*(studiohdr_t**)a3)
|
||||
{
|
||||
if ((__int64)*(studiohdr_t**)a3 == 0xDEADFEEDDEADFEED)
|
||||
v17 = g_pMDLFallback->m_pErrorHDR;
|
||||
else
|
||||
v17 = **(studiohdr_t***)a3;
|
||||
}
|
||||
else
|
||||
v17 = g_pMDLFallback->m_pErrorHDR;
|
||||
}
|
||||
CThreadFastMutex::ReleaseWaiter((CThreadFastMutex*)a3 + 128);
|
||||
return v17;
|
||||
@ -263,11 +271,14 @@ CStudioHWDataRef* CMDLCache::GetStudioHardwareRef(CMDLCache* cache, MDLHandle_t
|
||||
Error(eDLL_T::ENGINE, "Studio hardware with handle \"%hu\" not found and \"%s\" couldn't be loaded.\n", handle, ERROR_MODEL);
|
||||
return nullptr;
|
||||
}
|
||||
v3 = *(_QWORD*)(m_MDLDict.Deref().GetPtr() + 24 * g_pMDLFallback->m_hErrorMDL + 16);
|
||||
v3 = *(_QWORD*)(m_MDLDict.Deref().GetPtr() + 24i64 * g_pMDLFallback->m_hErrorMDL + 16);
|
||||
}
|
||||
|
||||
if (*(_QWORD*)v3)
|
||||
{
|
||||
if (*(_QWORD*)v3 == 0xDEADFEEDDEADFEED)
|
||||
return nullptr;
|
||||
|
||||
v4 = *(_QWORD*)(*(_QWORD*)v3 + 8i64);
|
||||
AcquireSRWLockExclusive(reinterpret_cast<PSRWLOCK>(&*m_MDLLock));
|
||||
v_CStudioHWDataRef__SetFlags(reinterpret_cast<CStudioHWDataRef*>(v4), 1i64); // !!! DECLARED INLINE IN < S3 !!!
|
||||
|
@ -38,7 +38,6 @@ class HThreadTools : public IDetour
|
||||
|
||||
v_MutexInternal_WaitForLock = p_MutexInternal_WaitForLock.RCast<int (*)(void*)>(); /*48 89 5C 24 ?? 48 89 74 24 ?? 57 48 83 EC 20 48 8B D9 FF 15 ?? ?? ?? ??*/
|
||||
v_MutexInternal_ReleaseWaiter = p_MutexInternal_ReleaseWaiter.RCast<int (*)(void*)>(); /*40 53 48 83 EC 20 8B 41 04 48 8B D9 83 E8 01*/
|
||||
|
||||
}
|
||||
virtual void GetVar(void) const { }
|
||||
virtual void GetCon(void) const { }
|
||||
|
Loading…
x
Reference in New Issue
Block a user