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.
169 lines
5.1 KiB
169 lines
5.1 KiB
//========= 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 ); |
|
} |