From 6d419a245f8eb266c1a3521ad0540a7b6e3ae6f6 Mon Sep 17 00:00:00 2001 From: Jonas 'Sortie' Termansen Date: Sun, 11 Aug 2013 13:20:37 +0200 Subject: [PATCH] Fix vbsp missing skybox error case when building cubemaps. The code previoused checked the address of a stack array that would always evaluate non-zero, which wasn't what was intended. --- mp/src/utils/vbsp/cubemap.cpp | 11 ++++++----- sp/src/utils/vbsp/cubemap.cpp | 11 ++++++----- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/mp/src/utils/vbsp/cubemap.cpp b/mp/src/utils/vbsp/cubemap.cpp index fda41703..2415115b 100644 --- a/mp/src/utils/vbsp/cubemap.cpp +++ b/mp/src/utils/vbsp/cubemap.cpp @@ -286,12 +286,8 @@ void CreateDefaultCubemaps( bool bHDR ) // NOTE: This implementation depends on the fact that all VTF files contain // all mipmap levels const char *pSkyboxBaseName = FindSkyboxMaterialName(); - char skyboxMaterialName[MAX_PATH]; - Q_snprintf( skyboxMaterialName, MAX_PATH, "skybox/%s", pSkyboxBaseName ); - IVTFTexture *pSrcVTFTextures[6]; - - if( !skyboxMaterialName ) + if( !pSkyboxBaseName ) { if( s_DefaultCubemapNames.Count() ) { @@ -300,6 +296,11 @@ void CreateDefaultCubemaps( bool bHDR ) return; } + char skyboxMaterialName[MAX_PATH]; + Q_snprintf( skyboxMaterialName, MAX_PATH, "skybox/%s", pSkyboxBaseName ); + + IVTFTexture *pSrcVTFTextures[6]; + int unionTextureFlags = 0; if( !LoadSrcVTFFiles( pSrcVTFTextures, skyboxMaterialName, &unionTextureFlags, bHDR ) ) { diff --git a/sp/src/utils/vbsp/cubemap.cpp b/sp/src/utils/vbsp/cubemap.cpp index fda41703..2415115b 100644 --- a/sp/src/utils/vbsp/cubemap.cpp +++ b/sp/src/utils/vbsp/cubemap.cpp @@ -286,12 +286,8 @@ void CreateDefaultCubemaps( bool bHDR ) // NOTE: This implementation depends on the fact that all VTF files contain // all mipmap levels const char *pSkyboxBaseName = FindSkyboxMaterialName(); - char skyboxMaterialName[MAX_PATH]; - Q_snprintf( skyboxMaterialName, MAX_PATH, "skybox/%s", pSkyboxBaseName ); - IVTFTexture *pSrcVTFTextures[6]; - - if( !skyboxMaterialName ) + if( !pSkyboxBaseName ) { if( s_DefaultCubemapNames.Count() ) { @@ -300,6 +296,11 @@ void CreateDefaultCubemaps( bool bHDR ) return; } + char skyboxMaterialName[MAX_PATH]; + Q_snprintf( skyboxMaterialName, MAX_PATH, "skybox/%s", pSkyboxBaseName ); + + IVTFTexture *pSrcVTFTextures[6]; + int unionTextureFlags = 0; if( !LoadSrcVTFFiles( pSrcVTFTextures, skyboxMaterialName, &unionTextureFlags, bHDR ) ) {