summaryrefslogtreecommitdiff
path: root/utils/xbox/MakeGameData/MakeParticles.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utils/xbox/MakeGameData/MakeParticles.cpp')
-rw-r--r--utils/xbox/MakeGameData/MakeParticles.cpp37
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;
+}