From efeda62add683af600da414ca61735d7c4f33351 Mon Sep 17 00:00:00 2001 From: nillerusr Date: Wed, 4 Oct 2023 22:22:24 +0300 Subject: [PATCH 1/4] fix crash on game close when demo recording --- engine/cl_demo.cpp | 2 +- engine/cmodel.cpp | 22 +++------------------- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/engine/cl_demo.cpp b/engine/cl_demo.cpp index f4417878..f7d96ec4 100644 --- a/engine/cl_demo.cpp +++ b/engine/cl_demo.cpp @@ -686,7 +686,7 @@ void CDemoRecorder::CloseDemoFile() m_DemoFile.Close(); - g_ClientDLL->OnDemoRecordStop(); + if( g_ClientDLL ) g_ClientDLL->OnDemoRecordStop(); } m_bCloseDemoFile = false; diff --git a/engine/cmodel.cpp b/engine/cmodel.cpp index 373eea3a..ca652789 100644 --- a/engine/cmodel.cpp +++ b/engine/cmodel.cpp @@ -50,29 +50,18 @@ csurface_t *CCollisionBSPData::GetSurfaceAtIndex( unsigned short surfaceIndex ) return &map_surfaces[surfaceIndex]; } -#if TEST_TRACE_POOL -CTSPool g_TraceInfoPool; -#else class CTraceInfoPool : public CTSList { public: CTraceInfoPool() = default; }; -CTraceInfoPool g_TraceInfoPool; -#endif +TraceInfo_t g_TraceInfo; TraceInfo_t *BeginTrace() { -#if TEST_TRACE_POOL - TraceInfo_t *pTraceInfo = g_TraceInfoPool.GetObject(); -#else - TraceInfo_t *pTraceInfo; - if ( !g_TraceInfoPool.PopItem( &pTraceInfo ) ) - { - pTraceInfo = new TraceInfo_t; - } -#endif + TraceInfo_t * pTraceInfo = &g_TraceInfo; + if ( pTraceInfo->m_BrushCounters[0].Count() != GetCollisionBSPData()->numbrushes + 1 ) { memset( pTraceInfo->m_Count, 0, sizeof( pTraceInfo->m_Count ) ); @@ -118,11 +107,6 @@ void EndTrace( TraceInfo_t *&pTraceInfo ) { PopTraceVisits( pTraceInfo ); Assert( pTraceInfo->m_nCheckDepth == -1 ); -#if TEST_TRACE_POOL - g_TraceInfoPool.PutObject( pTraceInfo ); -#else - g_TraceInfoPool.PushItem( pTraceInfo ); -#endif pTraceInfo = NULL; } From 64471015463dd2d8ef9babbc25a23758ecaceed8 Mon Sep 17 00:00:00 2001 From: nillerusr Date: Thu, 5 Oct 2023 19:36:24 +0300 Subject: [PATCH 2/4] Restore tslist for trace info( fix #295 ) --- engine/cmodel.cpp | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/engine/cmodel.cpp b/engine/cmodel.cpp index ca652789..373eea3a 100644 --- a/engine/cmodel.cpp +++ b/engine/cmodel.cpp @@ -50,18 +50,29 @@ csurface_t *CCollisionBSPData::GetSurfaceAtIndex( unsigned short surfaceIndex ) return &map_surfaces[surfaceIndex]; } +#if TEST_TRACE_POOL +CTSPool g_TraceInfoPool; +#else class CTraceInfoPool : public CTSList { public: CTraceInfoPool() = default; }; -TraceInfo_t g_TraceInfo; +CTraceInfoPool g_TraceInfoPool; +#endif TraceInfo_t *BeginTrace() { - TraceInfo_t * pTraceInfo = &g_TraceInfo; - +#if TEST_TRACE_POOL + TraceInfo_t *pTraceInfo = g_TraceInfoPool.GetObject(); +#else + TraceInfo_t *pTraceInfo; + if ( !g_TraceInfoPool.PopItem( &pTraceInfo ) ) + { + pTraceInfo = new TraceInfo_t; + } +#endif if ( pTraceInfo->m_BrushCounters[0].Count() != GetCollisionBSPData()->numbrushes + 1 ) { memset( pTraceInfo->m_Count, 0, sizeof( pTraceInfo->m_Count ) ); @@ -107,6 +118,11 @@ void EndTrace( TraceInfo_t *&pTraceInfo ) { PopTraceVisits( pTraceInfo ); Assert( pTraceInfo->m_nCheckDepth == -1 ); +#if TEST_TRACE_POOL + g_TraceInfoPool.PutObject( pTraceInfo ); +#else + g_TraceInfoPool.PushItem( pTraceInfo ); +#endif pTraceInfo = NULL; } From e7addfc9adee37603ae81700bf429b09aa961d58 Mon Sep 17 00:00:00 2001 From: nillerusr Date: Fri, 6 Oct 2023 04:19:51 +0300 Subject: [PATCH 3/4] materialsystem: fix color correction on non-windows systems( fixes #137 , #295 related ) --- materialsystem/CColorCorrection.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/materialsystem/CColorCorrection.cpp b/materialsystem/CColorCorrection.cpp index 46246658..fa72bed4 100644 --- a/materialsystem/CColorCorrection.cpp +++ b/materialsystem/CColorCorrection.cpp @@ -82,7 +82,12 @@ void ColorCorrectionLookup_t::AllocTexture() sprintf( name, "ColorCorrection - %p", m_Handle ); m_pColorCorrectionTexture = ITextureInternal::CreateProceduralTexture( name, TEXTURE_GROUP_OTHER, - COLOR_CORRECTION_TEXTURE_SIZE, COLOR_CORRECTION_TEXTURE_SIZE, COLOR_CORRECTION_TEXTURE_SIZE, IMAGE_FORMAT_BGRX8888, + COLOR_CORRECTION_TEXTURE_SIZE, COLOR_CORRECTION_TEXTURE_SIZE, COLOR_CORRECTION_TEXTURE_SIZE, +#ifdef DX_TO_GL_ABSTRACTION + IMAGE_FORMAT_RGBA8888, +#else + IMAGE_FORMAT_BGRX8888, +#endif TEXTUREFLAGS_NOMIP | TEXTUREFLAGS_NOLOD | TEXTUREFLAGS_SINGLECOPY | TEXTUREFLAGS_CLAMPS | TEXTUREFLAGS_CLAMPT | TEXTUREFLAGS_CLAMPU | TEXTUREFLAGS_NODEBUGOVERRIDE ); From 2636f1a66d421e598bb1fc7ab042996d08b569e1 Mon Sep 17 00:00:00 2001 From: nillerusr Date: Fri, 6 Oct 2023 03:33:45 +0300 Subject: [PATCH 4/4] fix macos build( maybe? #296 ) --- public/sentence.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/public/sentence.cpp b/public/sentence.cpp index 49994780..ea06426e 100644 --- a/public/sentence.cpp +++ b/public/sentence.cpp @@ -345,10 +345,6 @@ unsigned int CPhonemeTag::ComputeDataCheckSum() //----------------------------------------------------------------------------- // Purpose: Simple language to string and string to language lookup dictionary //----------------------------------------------------------------------------- -#if defined(__i386__) || defined(__x86_64__) -#pragma pack(1) -#endif - struct CCLanguage { int type; @@ -371,9 +367,6 @@ static CCLanguage g_CCLanguageLookup[] = { CC_THAI, "thai", 0 , 150, 250 }, { CC_PORTUGUESE,"portuguese", 0 , 0, 150 }, }; -#if defined(__i386__) || defined(__x86_64__) -#pragma pack() -#endif void CSentence::ColorForLanguage( int language, unsigned char& r, unsigned char& g, unsigned char& b ) { @@ -1767,4 +1760,4 @@ void CSentence::CreateEventWordDistribution( char const *pszText, float flSenten } -#endif // !_STATIC_LINKED || _SHARED_LIB \ No newline at end of file +#endif // !_STATIC_LINKED || _SHARED_LIB