diff options
Diffstat (limited to 'utils/xbox/MakeGameData/MakeParticles.cpp')
| -rw-r--r-- | utils/xbox/MakeGameData/MakeParticles.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/utils/xbox/MakeGameData/MakeParticles.cpp b/utils/xbox/MakeGameData/MakeParticles.cpp new file mode 100644 index 0000000..7e6a5f1 --- /dev/null +++ b/utils/xbox/MakeGameData/MakeParticles.cpp @@ -0,0 +1,37 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: .360 file creation of PCF files +// +//=====================================================================================// + +#include "MakeGameData.h" + +bool CreateTargetFile_PCF( const char *pSourceName, const char *pTargetName, bool bWriteToZip ) +{ + DmxHeader_t header; + CDmElement *pRoot; + if ( g_pDataModel->RestoreFromFile( pSourceName, NULL, NULL, &pRoot, CR_DELETE_NEW, &header ) == DMFILEID_INVALID ) + { + Msg( "CreateTargetFile_PCF: Error reading file \"%s\"!\n", pSourceName ); + return false; + } + + const char *pOutFormat = header.formatName; + if ( !g_pDataModel->FindFormatUpdater( pOutFormat ) ) + { + pOutFormat = "dmx"; + } + + CUtlBuffer binaryBuffer; + if ( !g_pDataModel->Serialize( binaryBuffer, "binary", pOutFormat, pRoot->GetHandle() ) ) + { + Msg( "CreateTargetFile_PCF: Error writing buffer\n" ); + return false; + } + + g_pDataModel->RemoveFileId( pRoot->GetFileId() ); + + WriteBufferToFile( pTargetName, binaryBuffer, bWriteToZip, g_WriteModeForConversions ); + + return true; +} |