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.
149 lines
4.9 KiB
149 lines
4.9 KiB
//========= 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
|
|
|