diff options
Diffstat (limited to 'sdklauncher/ModWizard_CopyFiles.h')
| -rw-r--r-- | sdklauncher/ModWizard_CopyFiles.h | 149 |
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 |