summaryrefslogtreecommitdiff
path: root/sdklauncher/ModWizard_CopyFiles.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /sdklauncher/ModWizard_CopyFiles.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'sdklauncher/ModWizard_CopyFiles.h')
-rw-r--r--sdklauncher/ModWizard_CopyFiles.h149
1 files changed, 149 insertions, 0 deletions
diff --git a/sdklauncher/ModWizard_CopyFiles.h b/sdklauncher/ModWizard_CopyFiles.h
new file mode 100644
index 0000000..e75e47b
--- /dev/null
+++ b/sdklauncher/ModWizard_CopyFiles.h
@@ -0,0 +1,149 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================
+
+#ifndef MODWIZARD_COPYFILES_H
+#define MODWIZARD_COPYFILES_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+
+#include <vgui_controls/WizardSubPanel.h>
+#include <vgui_controls/Label.h>
+#include <vgui_controls/ProgressBar.h>
+#include "utlvector.h"
+#include "configs.h"
+
+
+// --------------------------------------------------------------------------------------------------------------------- //
+// CreateModWizard sub panel 3.
+// This panel asks for the directory to install in and the mod name.
+// --------------------------------------------------------------------------------------------------------------------- //
+
+namespace vgui
+{
+
+ class CModWizardSubPanel_CopyFiles : public WizardSubPanel
+ {
+ public:
+ typedef WizardSubPanel BaseClass;
+
+ public:
+ CModWizardSubPanel_CopyFiles( Panel *parent, const char *panelName );
+
+ // Called to store the settings it'll use to copy all the files over.
+ void GetReady( const char *pOutputDirName, const char *pOutputModGamedirName, const char *modName ) ;
+
+ virtual WizardSubPanel* GetNextSubPanel();
+ virtual void OnDisplayAsNext();
+ virtual void OnTick();
+
+
+ protected:
+ class CFileCopyInfo
+ {
+ public:
+ CFileCopyInfo( const char *pIn, const char *pOut )
+ {
+ Q_strncpy( m_InFilename, pIn, sizeof( m_InFilename ) );
+ Q_strncpy( m_OutFilename, pOut, sizeof( m_OutFilename ) );
+ }
+
+ char m_InFilename[MAX_PATH];
+ char m_OutFilename[MAX_PATH];
+ };
+
+ protected:
+
+ bool BuildCopyFiles_R( const char *pSourceDir, const char *pMask, const char *pOutputDirName );
+
+ bool BuildCopyFilesForMappings( char **pMappings, int nMappings );
+ bool HandleSpecialFileCopy( CFileCopyInfo *pInfo, bool &bErrorStatus );
+ bool HandleReplacements_GenericVCProj( CFileCopyInfo *pInfo, bool &bErrorStatus );
+ virtual bool BuildCopyFilesForMod_HL2() = 0;
+ virtual bool BuildCopyFilesForMod_HL2MP() = 0;
+ virtual bool BuildCopyFilesForMod_FromScratch() = 0;
+ virtual bool BuildCopyFilesForMod_SourceCodeOnly() = 0;
+ virtual bool HandleReplacements_GameProjectFiles( CFileCopyInfo *pInfo, bool &bErrorStatus ) = 0;
+ virtual bool HandleReplacements_Solution( CFileCopyInfo *pInfo, bool &bErrorStatus ) = 0;
+ // Right now only one of these files gets modified, but keeping it here for expansion in the future.
+ virtual bool HandleReplacements_TemplateOptions( CFileCopyInfo *pInfo, bool &bErrorStatus ) = 0;
+
+ protected:
+
+ CUtlVector<CFileCopyInfo> m_FileCopyInfos;
+ int m_iCurCopyFile; // -1 at the beginning.
+
+
+ Label *m_pLabel;
+ Label *m_pFinishedLabel;
+ ProgressBar *m_pProgressBar;
+
+ char m_OutputDirName[MAX_PATH]; // c:\mymod
+ char m_OutModGamedirName[MAX_PATH]; // c:\mymod\mymod
+ char m_ModName[MAX_PATH]; // mymod
+ ModType_t m_ModType;
+ };
+
+ class CModWizardSubPanel_CopyFiles_Source2006 : public CModWizardSubPanel_CopyFiles
+ {
+
+ public:
+ CModWizardSubPanel_CopyFiles_Source2006( Panel *parent, const char *panelName );
+
+ private:
+
+ bool BuildCopyFilesForMod_HL2();
+ bool BuildCopyFilesForMod_HL2MP();
+ bool BuildCopyFilesForMod_FromScratch();
+ bool BuildCopyFilesForMod_SourceCodeOnly();
+ bool HandleReplacements_GameProjectFiles( CFileCopyInfo *pInfo, bool &bErrorStatus );
+ bool HandleReplacements_Solution( CFileCopyInfo *pInfo, bool &bErrorStatus );
+ bool HandleReplacements_TemplateOptions( CFileCopyInfo *pInfo, bool &bErrorStatus ) { return false; } // Ep1 will never do this.
+
+ };
+
+ class CModWizardSubPanel_CopyFiles_Source2007 : public CModWizardSubPanel_CopyFiles
+ {
+ public:
+ CModWizardSubPanel_CopyFiles_Source2007( Panel *parent, const char *panelName );
+
+ private:
+
+ bool BuildCopyFilesForMod_HL2();
+ bool BuildCopyFilesForMod_HL2MP();
+ bool BuildCopyFilesForMod_FromScratch();
+ bool BuildCopyFilesForMod_SourceCodeOnly();
+ bool HandleReplacements_GameProjectFiles( CFileCopyInfo *pInfo, bool &bErrorStatus );
+ bool HandleReplacements_Solution( CFileCopyInfo *pInfo, bool &bErrorStatus );
+
+ // Right now only one of these files gets modified, but keeping it here for expansion in the future.
+ bool HandleReplacements_TemplateOptions( CFileCopyInfo *pInfo, bool &bErrorStatus );
+
+ };
+
+ class CModWizardSubPanel_CopyFiles_Source2009 : public CModWizardSubPanel_CopyFiles
+ {
+ public:
+ CModWizardSubPanel_CopyFiles_Source2009( Panel *parent, const char *panelName );
+
+ private:
+
+ bool BuildCopyFilesForMod_HL2();
+ bool BuildCopyFilesForMod_HL2MP();
+ bool BuildCopyFilesForMod_FromScratch();
+ bool BuildCopyFilesForMod_SourceCodeOnly();
+ bool HandleReplacements_GameProjectFiles( CFileCopyInfo *pInfo, bool &bErrorStatus );
+ bool HandleReplacements_Solution( CFileCopyInfo *pInfo, bool &bErrorStatus );
+
+ // Right now only one of these files gets modified, but keeping it here for expansion in the future.
+ bool HandleReplacements_TemplateOptions( CFileCopyInfo *pInfo, bool &bErrorStatus );
+
+ };
+}
+
+
+#endif // MODWIZARD_COPYFILES_H