diff options
Diffstat (limited to 'sdklauncher/ModWizard_TemplateOptions.cpp')
| -rw-r--r-- | sdklauncher/ModWizard_TemplateOptions.cpp | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/sdklauncher/ModWizard_TemplateOptions.cpp b/sdklauncher/ModWizard_TemplateOptions.cpp new file mode 100644 index 0000000..1b3042e --- /dev/null +++ b/sdklauncher/ModWizard_TemplateOptions.cpp @@ -0,0 +1,169 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//============================================================================= + +#include "ModWizard_TemplateOptions.h" +#include <vgui_controls/DirectorySelectDialog.h> +#include <vgui/IInput.h> +#include <vgui_controls/Button.h> +#include <vgui_controls/WizardPanel.h> +#include <vgui_controls/CheckButton.h> +#include "sdklauncher_main.h" +#include <ctype.h> +#include "CreateModWizard.h" +#include "ModWizard_GetModInfo.h" +#include "ModWizard_CopyFiles.h" + + +using namespace vgui; + +// If the option is disabled, throw this on the front of it. +#define OPTION_DISABLED_PREFIX "//" + +// The option strings for the replace +static const char *g_szOptions[] = +{ + "#define SDK_USE_TEAMS", //TPOPTION_TEAMS, + "#define SDK_USE_PLAYERCLASSES", //TPOPTION_CLASSES, + "#define SDK_USE_STAMINA", //TPOPTION_STAMINA, + "#define SDK_USE_SPRINTING", //TPOPTION_SPRINTING, + "#define SDK_USE_PRONE", //TPOPTION_PRONE, + "#define SDK_SHOOT_WHILE_SPRINTING", //TPOPTION_SHOOTSPRINTING, + "#define SDK_SHOOT_ON_LADDERS", //TPOPTION_SHOOTLADDERS, + "#define SDK_SHOOT_WHILE_JUMPING", //TPOPTION_SHOOTJUMPING, +}; +char *VarArgs( PRINTF_FORMAT_STRING const char *format, ... ) +{ + va_list argptr; + static char string[1024]; + + va_start (argptr, format); + Q_vsnprintf(string, sizeof(string), format,argptr); + va_end (argptr); + + return string; +} + +CModWizardSubPanel_TemplateOptions::CModWizardSubPanel_TemplateOptions( Panel *parent, const char *panelName ) +: BaseClass( parent, panelName ) +{ + m_pOptionTeams = new CheckButton(this, "OptionTeamsButton", "" ); + m_pOptionClasses = new CheckButton( this, "OptionClassesButton", "" ); + m_pOptionStamina = new CheckButton( this, "OptionStaminaButton", "" ); + m_pOptionSprinting = new CheckButton( this, "OptionSprintingButton", "" ); + m_pOptionProne = new CheckButton(this, "OptionProneButton", "" ); + m_pOptionShootSprinting = new CheckButton( this, "OptionShootSprintingButton", "" ); + m_pOptionShootOnLadders = new CheckButton( this, "OptionShootLaddersButton", "" ); + m_pOptionShootJumping = new CheckButton( this, "OptionShootJumpingButton", "" ); + + LoadControlSettings( "ModWizardSubPanel_TemplateOptions.res"); + + // Sets everything off + SetDefaultOptions(); + +} +void CModWizardSubPanel_TemplateOptions::SetDefaultOptions() +{ + // default everything to off. + for ( int i = 0;i < TPOPTIONS_TOTAL; i++ ) + m_bOptions[i] = false; + + if ( m_pOptionTeams ) + m_pOptionTeams->SetSelected( false ); + if ( m_pOptionClasses ) + m_pOptionClasses->SetSelected( false ); + if ( m_pOptionStamina ) + m_pOptionStamina->SetSelected( false ); + if ( m_pOptionSprinting ) + m_pOptionSprinting->SetSelected( false ); + if ( m_pOptionProne ) + m_pOptionProne->SetSelected( false ); + if ( m_pOptionShootSprinting ) + m_pOptionShootSprinting->SetSelected( false ); + if ( m_pOptionShootOnLadders ) + m_pOptionShootOnLadders->SetSelected( false ); + if ( m_pOptionShootJumping ) + m_pOptionShootJumping->SetSelected( false ); +} + + +char *CModWizardSubPanel_TemplateOptions::GetOption( int optionType ) +{ + // Option is enabled, just pass the string back unaltered. + if ( true == m_bOptions[optionType] ) + { + return (char*)g_szOptions[optionType]; + } + else + { + // Option is disabled, tack the comment '//' infront of the string, must strdup this + return strdup(VarArgs( "//%s", g_szOptions[optionType] )); + } +} + +// Update all the options based on the check boxes. +void CModWizardSubPanel_TemplateOptions::UpdateOptions() +{ + if ( m_pOptionTeams && m_pOptionTeams->IsSelected() ) + m_bOptions[TPOPTION_TEAMS] = true; + + if ( m_pOptionClasses && m_pOptionClasses->IsSelected() ) + m_bOptions[TPOPTION_CLASSES] = true; + + if ( m_pOptionStamina && m_pOptionStamina->IsSelected() ) + m_bOptions[TPOPTION_STAMINA] = true; + + // if sprinting is enabled, so is stamina no matter what. + if ( m_pOptionSprinting && m_pOptionSprinting->IsSelected() ) + { + m_bOptions[TPOPTION_SPRINTING] = true; + m_bOptions[TPOPTION_STAMINA] = true; + } + + if ( m_pOptionProne && m_pOptionProne->IsSelected() ) + m_bOptions[TPOPTION_PRONE] = true; + + if ( m_pOptionShootSprinting && m_pOptionShootSprinting->IsSelected() ) + m_bOptions[TPOPTION_SHOOTSPRINTING] = true; + + + if ( m_pOptionShootOnLadders && m_pOptionShootOnLadders->IsSelected() ) + m_bOptions[TPOPTION_SHOOTLADDERS] = true; + + if ( m_pOptionShootJumping && m_pOptionShootJumping->IsSelected() ) + m_bOptions[TPOPTION_SHOOTJUMPING] = true; +} + +WizardSubPanel *CModWizardSubPanel_TemplateOptions::GetNextSubPanel() +{ + return dynamic_cast<WizardSubPanel *>(GetWizardPanel()->FindChildByName("CModWizardSubPanel_CopyFiles")); +} + +void CModWizardSubPanel_TemplateOptions::PerformLayout() +{ + BaseClass::PerformLayout(); + GetWizardPanel()->SetFinishButtonEnabled(false); +} + +void CModWizardSubPanel_TemplateOptions::OnDisplayAsNext() +{ + GetWizardPanel()->SetTitle( "#ModWizard_TemplateOptions_Title", true ); +} + + +bool CModWizardSubPanel_TemplateOptions::OnNextButton() +{ + + // Update all the options + UpdateOptions(); + // nothing else needs to be done here + + return true; +} + +void CModWizardSubPanel_TemplateOptions::OnCommand( const char *command ) +{ + BaseClass::OnCommand( command ); +}
\ No newline at end of file |