You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.1 KiB
37 lines
1.1 KiB
//========= 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; |
|
}
|
|
|