Counter Strike : Global Offensive Source Code
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.
 
 
 
 
 
 

678 lines
19 KiB

//========= Copyright (c) 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//
//=============================================================================//
//
// Half-Life Model Viewer (c) 1999 by Mete Ciragan
//
// file: ControlPanel.h
// last modified: May 29 programs and associated files contained in this
// distribution were developed by Mete Ciragan. The programs
// are not in the public domain, but they are freely
// distributable without licensing fees. These programs are
// provided without guarantee or warrantee expressed or
// implied.
//
// version: 1.2
//
// email: [email protected]
// web: http://www.swissquake.ch/chumbalum-soft/
//
#ifndef INCLUDED_CONTROLPANEL
#define INCLUDED_CONTROLPANEL
#ifndef INCLUDED_MXWINDOW
#include <mxtk/mxWindow.h>
#endif
#define IDC_TAB 1901
#define IDC_RENDERMODE 2001
#define IDC_GROUND 2003
#define IDC_MOVEMENT 2004
#define IDC_BACKGROUND 2005
#define IDC_HITBOXES 2006
#define IDC_BONES 2007
#define IDC_ATTACHMENTS 2008
#define IDC_PHYSICSMODEL 2009
#define IDC_PHYSICSHIGHLIGHT 2010
#define IDC_LODCHOICE 2011
#define IDC_AUTOLOD 2012
#define IDC_LODSWITCH 2013
#define IDC_SOFTWARESKIN 2014
#define IDC_OVERBRIGHT2 2015
#define IDC_RENDER_FOV 2016
#define IDC_SEQUENCEBOXES 2017
#define IDC_RUNIK 2018
#define IDC_HEADTURN 2019
#define IDC_NORMALS 2020
#define IDC_TANGENTFRAME 2021
#define IDC_NORMALMAP 2022
#define IDC_SPECULAR 2023
#define IDC_SHADOW 2024
#define IDC_ILLUMPOSITION 2025
#define IDC_OVERLAY_WIREFRAME 2026
#define IDC_PLAYSOUNDS 2027
#define IDC_MESSAGES 2028
#define IDC_SHADERS 2029
#define IDC_SHOWORIGINAXIS 2030
#define IDC_ORIGINAXISLENGTH 2031
#define IDC_DISPLACEMENTMAP 2032
#define IDC_EYELOOK 2033
#define IDC_INCLUDEDMODELS 2034
#define IDC_DRAWHITBOXSET 2035
#define IDC_DRAWHITBOXNUMBER 2036
#define IDC_MATERIALVARMATS 2037
#define IDC_MATERIALVARPARAMS 2038
#define IDC_ROLL_BODYGROUPS 2039
#define IDC_EXPLORE_TO_VMT 2040
#define IDC_BONEWEIGHTINDEX 2041
#define IDC_MATVARSLIDERMATRIX 2050
#define IDC_MATVAREDIT 2051
#define IDC_MATVARCOLORPICKER 2052
#define IDC_MATVARSLIDERFLOAT 2053
#ifdef MATERIAL_SCRIPT_SAVE_FEATURE
#define IDC_MATVARSAVE 2054
#endif
#define IDC_MATVARLOAD 2055
#define IDC_MATVARCOPYTOCLIPBOARD 2056
#define MAX_SEQUENCES 5
#define IDC_SEQUENCE0 3000
#define IDC_SEQUENCE1 3001
#define IDC_SEQUENCE2 3002
#define IDC_SEQUENCE3 3003
#define IDC_SEQUENCE4 3004
#define IDC_SEQUENCESCALE0 3005
#define IDC_SEQUENCESCALE1 3006
#define IDC_SEQUENCESCALE2 3007
#define IDC_SEQUENCESCALE3 3008
#define IDC_SEQUENCESCALE4 3009
#define IDC_FRAMESELECTION0 3010
#define IDC_FRAMESELECTION1 3011
#define IDC_FRAMESELECTION2 3012
#define IDC_FRAMESELECTION3 3013
#define IDC_FRAMESELECTION4 3014
#define IDC_SEQUENCEFILTER0 3020
#define IDC_SEQUENCEFILTER1 3021
#define IDC_SEQUENCEFILTER2 3022
#define IDC_SEQUENCEFILTER3 3023
#define IDC_SEQUENCEFILTER4 3024
#define NUM_POSEPARAMETERS 8
#define IDC_POSEPARAMETER_SCALE 3100
#define IDC_POSEPARAMETER 3120
#define IDC_POSEPARAMETER_VALUE 3140
#define IDC_SPEEDSCALE 3201
#define IDC_FORCEFRAME 3202
#define IDC_BLENDSEQUENCECHANGES 3203
#define IDC_BLENDNOW 3204
#define IDC_BLENDTIME 3205
#define IDC_ACTIVITY_MODIFIERS 3206
#define IDC_ANIMATEWEAPONS 3207
#define IDC_BODYPART 4001
#define IDC_SUBMODEL 4002
#define IDC_CONTROLLER 4003
#define IDC_CONTROLLERVALUE 4004
#define IDC_SKINS 4005
#define IDC_MATERIALS 4006
#define IDC_BODYGROUPPRESET 4007
#define IDC_BONE_NAMES 4999
#define IDC_BONE_BONELIST 5000
#define IDC_BONE_GENERATEQC 5001
#define IDC_BONE_HIGHLIGHT_BONE 5002
#define IDC_BONE_HITBOXLIST 5003
#define IDC_BONE_SURFACEPROP 5004
#define IDC_BONE_HIGHLIGHT_HITBOX 5005
#define IDC_BONE_ADD_HITBOX 5006
#define IDC_BONE_DELETE_HITBOX 5007
#define IDC_BONE_APPLY_TO_CHILDREN 5008
#define IDC_BONE_SHOW_DEFAULT_POSE 5009
#define IDC_BONE_HITBOX_ORIGINX 5010
#define IDC_BONE_HITBOX_ORIGINY 5011
#define IDC_BONE_HITBOX_ORIGINZ 5012
#define IDC_BONE_HITBOX_SIZEX 5013
#define IDC_BONE_HITBOX_SIZEY 5014
#define IDC_BONE_HITBOX_SIZEZ 5015
#define IDC_BONE_HITBOX_GROUP 5016
#define IDC_BONE_UPDATE_HITBOX 5017
#define IDC_BONE_USE_AUTOGENERATED_HITBOXES 5018
#define IDC_BONE_HITBOXSET 5019
#define IDC_BONE_HITBOXADDSET 5020
#define IDC_BONE_HITBOXDELETESET 5021
#define IDC_BONE_HITBOXSETNAME 5022
#define IDC_BONE_HITBOXSETNAME_EDIT 5023
#define IDC_BONE_HITBOX_EDITMODE 5024
// This range is reserved for the attachment window.
#define IDC_ATTACHMENT_WINDOW_FIRST 5024
#define IDC_ATTACHMENT_WINDOW_LAST 5100
#define IDC_BONE_HITBOX_NAME 5101
#define IDC_BONE_SAVE_HITBOXES 5102
#define IDC_BONE_LOAD_HITBOXES 5103
#define IDC_FLEX 7001
#define IDC_FLEXDEFAULTS 7002
#define IDC_FLEXRANDOM 7003
#define IDC_FLEXZERO 7004
#define IDC_FLEXONE 7005
#define IDC_FLEXSCALE 7101
#define NUM_FLEX_SLIDERS 48
#define IDC_PHYS_FIRST 7501
#define IDC_PHYS_BONE 7501
#define IDC_PHYS_CON_LINK_LIMITS 7502
#define IDC_PHYS_MATERIAL 7503
#define IDC_PHYS_CON_MIN 7504
#define IDC_PHYS_CON_MAX 7505
#define IDC_PHYS_CON_TEST 7506
#define IDC_PHYS_P_MASSBIAS 7507
#define IDC_PHYS_CON_FRICTION 7508
//#define IDC_PHYS_P_ELASTICITY 7509
#define IDC_PHYS_P_INERTIA 7510
#define IDC_PHYS_P_DAMPING 7511
#define IDC_PHYS_P_ROT_DAMPING 7512
#define IDC_PHYS_MASS 7513
#define IDC_PHYS_QCFILE 7514
#define IDC_PHYS_CON_AXIS_X 7515
#define IDC_PHYS_CON_AXIS_Y 7516
#define IDC_PHYS_CON_AXIS_Z 7517
#define IDC_PHYS_CON_TYPE_FREE 7518
#define IDC_PHYS_CON_TYPE_FIXED 7519
#define IDC_PHYS_CON_TYPE_LIMIT 7520
#define IDC_PHYS_LAST 7599
#define IDC_SOFT_FIRST 7600
#define IDC_SOFT_MASS 7600
#define IDC_SOFT_BONE 7601
#define IDC_SOFT_CON_AXIS_X 7603
#define IDC_SOFT_CON_AXIS_Y 7604
#define IDC_SOFT_CON_AXIS_Z 7605
#define IDC_SOFT_SIMULATE 7606
#define IDC_SOFT_SHOW_POLYGONS 7610
#define IDC_SOFT_SHOW_EDGES 7611
#define IDC_SOFT_SHOW_BASES 7612
#define IDC_SOFT_SHOW_WIND 7613
#define IDC_SOFT_SHOW_INDICES 7614
#define IDC_SOFT_ITERATIONS 7615
#define IDC_SOFT_WIND_YAW 7616
#define IDC_SOFT_WIND_STRENGTH 7617
#define IDC_SOFT_SURFACE_STRETCH 7618
#define IDC_SOFT_THREAD_STRETCH 7619
#define IDC_SOFT_SIMD 7620
#define IDC_SOFT_GRAVITY 7621
#define IDC_SOFT_VELOCITY_DAMPING 7622
#define IDC_SOFT_SHOW_COLLISION 7623
#define IDC_SOFT_LAST 7699
#define MAX_ANIMS 4
#define IDC_ANIMX 8020 // through 8023 ( MAX_ANIMS )
#define IDC_ANIMY 8030 // through 8033 ( MAX_ANIMS )
#define IDC_IKRULE_CHAIN 9000
#define IDC_IKRULE_CHOICE 9001
#define IDC_IKRULE_TOUCH 9002
#define IDC_IKRULE_ATTACHMENT 9003
#define IDC_IKRULE_RANGE_TOGGLE 9004
#define IDC_IKRULE_RANGE_START 9005
#define IDC_IKRULE_RANGE_PEAK 9006
#define IDC_IKRULE_RANGE_TAIL 9007
#define IDC_IKRULE_RANGE_END 9008
#define IDC_IKRULE_RANGE_START_NOW 9009
#define IDC_IKRULE_RANGE_PEAK_NOW 9010
#define IDC_IKRULE_RANGE_TAIL_NOW 9011
#define IDC_IKRULE_RANGE_END_NOW 9012
#define IDC_IKRULE_CONTACT_TOGGLE 9013
#define IDC_IKRULE_CONTACT_FRAME_NOW 9014
#define IDC_IKRULE_CONTACT_FRAME 9015
#define IDC_IKRULE_USING 9016
#define IDC_IKRULE_QC_STRING 9017
#define IDC_SUBMODEL_LOADMERGEDMODEL 9018
#define IDC_SUBMODEL_UNLOADMERGEDMODEL 9019
#define IDC_SUBMODEL_UNLOADALLMERGEDMODELS 9020
#define IDC_SUBMODEL_LOADMERGEDMODEL_STEAM 9021
#define IDC_SUBMODEL_UPDATE_SELECTION 9022
#define IDC_SUBMODEL_UPDATE_BONESELECTION 9023
#define IDC_COMPILE_UPDATE_QCPATHSELECTION 9024
#define IDC_COMPILE_REMOVEFROMLIST 9025
#define IDC_COMPILE_CALLSTUDIOMDL 9026
#define IDC_COMPILE_OPENLOGFILE 9027
#define IDC_COMPILE_EXPLORETOQC 9028
#define IDC_COMPILE_LOADMODELFILE 9029
#define IDC_COMPILE_SELECTEDTOGGLE 9030
#define IDC_EVENT_SOUND_FRAME_NOW 6000
#define IDC_EVENT_SOUND_FRAME 6001
#define IDC_EVENT_SOUND_NAME 6002
#define IDC_EVENT_QC_STRING 6003
class mxTab;
class mxChoice;
class mxCheckBox;
class mxSlider;
class mxLineEdit;
class mxLineEdit2;
class mxLabel;
class mxListBox;
class mxButton;
class mxRadioButton;
class MatSysWindow;
class TextureWindow;
class CBoneControlWindow;
class CAttachmentsWindow;
class CStudioHdr;
// Return codes from loadModel.
enum LoadModelResult_t
{
LoadModel_Success = 0,
LoadModel_LoadFail,
LoadModel_NoModel,
LoadModel_PostLoadFail,
};
class ControlPanel : public mxWindow
{
mxWindow *wRender;
mxTab *tab;
mxChoice *cRenderMode;
mxChoice *cHighlightBone;
mxChoice *cDrawHitBoxSet;
mxChoice *cDrawHitBoxNumber;
mxCheckBox *cbGround;
mxCheckBox *cbHitBoxes;
mxCheckBox *cbSequenceBoxes;
mxCheckBox *cbShadow;
mxCheckBox *cbMovement;
mxCheckBox *cbBackground;
mxCheckBox *cbSoftwareSkin;
mxCheckBox *cbOverbright2;
mxCheckBox *cbAttachments;
mxCheckBox *cbBones;
mxCheckBox *cbNormals;
mxCheckBox *cbNormalMap;
mxCheckBox *cbDisplacementMap;
// mxCheckBox *cbParallaxMap;
mxCheckBox *cbTangentFrame;
mxCheckBox *cbOverlayWireframe;
mxCheckBox *cbSpecular;
mxCheckBox *cbRunIK;
mxCheckBox *cbEnableHead;
mxCheckBox *cbIllumPosition;
mxCheckBox *cbPlaySounds;
mxCheckBox *cbShowOriginAxis;
mxSlider *leOriginAxisLength;
mxChoice *cIncludedModels;
mxChoice *cbBoneWeightInspectIndex;
mxLabel *lblBoneWeightInspectValues;
mxChoice *cLODChoice;
mxCheckBox *cbAutoLOD;
mxLineEdit *leLODSwitch;
mxLabel *lLODMetric;
mxChoice *cSequence[MAX_SEQUENCES];
mxLabel *laFilters;
mxLineEdit *leSequenceFilter[MAX_SEQUENCES];
mxSlider *slSequence[MAX_SEQUENCES];
int m_iLastSequenceCount;
int *iSelectionToSequence[MAX_SEQUENCES]; // selection to sequence
int *iSequenceToSelection[MAX_SEQUENCES]; // sequence to selection
mxLabel *laGroundSpeed;
mxSlider *slSpeedScale;
mxLabel *laFPS;
mxLabel *laBlendAmount;
mxChoice *cPoseParameter[NUM_POSEPARAMETERS];
mxSlider *slPoseParameter[NUM_POSEPARAMETERS];
mxLineEdit *lePoseParameter[NUM_POSEPARAMETERS];
mxLineEdit *leFOV;
mxSlider *slBlendTime;
mxLabel *laBlendTime;
mxChoice *cActivityModifiers;
mxSlider *slForceFrame;
mxLabel *lForcedFrame;
mxRadioButton *rbFrameSelection[MAX_SEQUENCES];
mxChoice *cBodypart, *cController, *cSubmodel, *cBodyGroupPreset;
mxSlider *slController;
mxChoice *cSkin;
mxChoice *cMaterials;
mxLabel *lModelInfo1, *lModelInfo2, *lModelInfo3, *lModelInfo4;
//mxChoice *cTextures;
//mxCheckBox *cbChrome;
//mxLabel *lTexSize;
//mxLineEdit *leWidth, *leHeight;
mxLineEdit *leMeshScale, *leBoneScale;
MatSysWindow *d_MatSysWindow;
TextureWindow *d_textureWindow;
mxChoice *cFlex[NUM_FLEX_SLIDERS];
mxSlider *slFlexScale[NUM_FLEX_SLIDERS];
mxChoice *cPhysicsBone;
mxChoice *cSoftbodyCtrl;
mxCheckBox *cbSoftbodyPolygons;
mxCheckBox *cbSoftbodyWind;
mxCheckBox *cbSoftbodyIndices;
mxCheckBox *cbSoftbodyCollision;
mxCheckBox *cbSoftbodyEdges;
mxCheckBox *cbSoftbodyBases;
mxCheckBox *cbSoftbodyEnableSimd;
mxCheckBox *cbSoftbodySimulate;
mxRadioButton *rbConstraintAxis[ 3 ];
mxRadioButton *rbSoftbodyAxis[ 3 ];
mxSlider *slPhysicsFriction;
mxLabel *lPhysicsFriction;
mxLabel *leSoftbodyIterations;
mxSlider *slSoftbodyIterations;
mxSlider *slSoftbodyWindYaw;
mxSlider *slSoftbodyWindStrength;
mxSlider *slSoftbodyGravity;
mxSlider *slSoftbodyVelocityDamping;
mxSlider *slSoftbodySurfaceStretch;
mxSlider *slSoftbodyThreadStretch;
mxSlider *slPhysicsConMin;
mxLabel *lPhysicsConMin;
mxCheckBox *cbLinked; // links min/max sliders
mxSlider *slPhysicsConMax;
mxLabel *lPhysicsConMax;
mxSlider *slPhysicsConTest;
mxLineEdit *leMass;
mxSlider *slPhysicsParamMassBias;
mxLabel *lPhysicsParamMassBias;
mxSlider *slPhysicsParamFriction;
mxLabel *lPhysicsParamFriction;
mxSlider *slPhysicsParamElasticity;
mxLabel *lPhysicsParamElasticity;
mxSlider *slPhysicsParamInertia;
mxLabel *lPhysicsParamInertia;
mxSlider *slPhysicsParamDamping;
mxLabel *lPhysicsParamDamping;
mxSlider *slPhysicsParamRotDamping;
mxLabel *lPhysicsParamRotDamping;
mxLabel *lPhysicsMaterial;
mxChoice *cIKChain;
mxChoice *cIKType;
mxLabel *lIKTouch;
mxChoice *cIKTouch;
mxLabel *lIKAttachment;
mxLineEdit *leIKAttachment;
mxCheckBox *cbIKRangeToggle;
mxLineEdit2 *leIKRangeStart;
mxLineEdit2 *leIKRangePeak;
mxLineEdit2 *leIKRangeTail;
mxLineEdit2 *leIKRangeEnd;
mxCheckBox *cbIKContactToggle;
mxLineEdit2 *leIKContactFrame;
mxChoice *cIKUsing;
mxLineEdit2 *leIKQCString;
mxLineEdit2 *leEventSoundFrame;
mxListBox *lbEventSoundName;
mxLineEdit2 *leEventQCString;
mxListBox *lbEventHistory;
mxLabel *lEventSequence;
float m_lastEventCycle;
CBoneControlWindow* m_pBoneWindow;
CAttachmentsWindow* m_pAttachmentsWindow;
mxListBox *cMessageList;
mxListBox *cShaderUsed;
mxButton *m_bRandomizeWeaponModuleSlots;
mxButton *m_bExploreToMaterial;
int m_iSavedSequences[MAX_SEQUENCES];
float m_flSavedWeights[MAX_SEQUENCES];
mxListBox *cMaterialList;
mxListBox *cMaterialParamList;
mxLineEdit2 *leMaterialParamText;
mxButton *bMaterialParamColor;
mxCheckBox *cbMaterialParamMultiEdit;
#ifdef MATERIAL_SCRIPT_SAVE_FEATURE
mxButton *bMaterialParamSave;
mxLineEdit2 *leMaterialParamSavePath;
mxCheckBox *cbMaterialParamSaveRun;
mxLineEdit2 *leMaterialParamSaveRun;
#endif
mxButton *bMaterialParamLoad;
mxButton *bMaterialParamCopyToClipboard;
mxSlider *slMaterialParamMatrixSliderScaleX;
mxSlider *slMaterialParamMatrixSliderScaleY;
mxSlider *slMaterialParamMatrixSliderRotation;
mxSlider *slMaterialParamMatrixSliderTranslateX;
mxSlider *slMaterialParamMatrixSliderTranslateY;
mxSlider *slMaterialParamFloat;
mxLabel *lblMatrixScaleX;
mxLabel *lblMatrixScaleY;
mxLabel *lblMatrixRotation;
mxLabel *lblMatrixTranslateX;
mxLabel *lblMatrixTranslateY;
mxListBox *cSubmodelList;
mxButton *bSubmodelAdd;
mxButton *bSubmodelAddSteam;
mxButton *bSubmodelRemoveAll;
mxButton *bSubmodelRemoveSelected;
mxChoice *cSubmodelAttachTo;
mxChoice *cSubmodelLocalAttachOrigin;
mxListBox *cCompileRecentQCpaths;
mxLabel *lblFullQCPath;
mxButton *bCompileQCRemoveFromList;
mxButton *bCompileQCCompile;
mxButton *bCompileQCLoadModel;
mxButton *bCompileQCShowCompileOutput;
mxButton *bCompileQCBrowseToQC;
mxButton *bCompileQCWhenSelected;
bool bCompileSelectedToggle;
mxLabel *lblCompileWarningOrError;
mxListBox *cCompileQCOutput;
int nCompileLastUpdateTick;
public:
// CREATORS
ControlPanel( mxWindow *parent );
virtual ~ControlPanel ();
virtual void OnDelete();
// MANIPULATORS
int handleEvent( mxEvent *event );
int handlePhysicsEvent( mxEvent *event );
int handleSoftbodyEvent( mxEvent *event );
void UpdateConstraintSliders( int clamp );
void setupPhysics( void );
void setupPhysicsBone( int boneIndex );
void setupPhysicsAxis( int boneIndex, int axis );
int getPhysicsAxis( void );
void setPhysicsAxis( int axisIndex );
int getSoftbodyAxis( void );
void setSoftbodyAxis( int axisIndex );
void writePhysicsData( void );
void handlePhysicsKey( mxEvent *event );
// void readPhysicsMaterials( mxChoice *pList );
void dumpModelInfo ();
LoadModelResult_t loadModel( const char *filename );
LoadModelResult_t loadModel( const char *filename, int slot );
void OnLoadModel( void );
void resetControlPanel( void );
void setRenderMode( int mode );
void setShowGround( bool b );
void setShowMovement( bool b );
void setShowBackground( bool b );
void setShowNormals( bool b );
void setShowTangentFrame( bool b );
void setOverlayWireframe( bool b );
void setDisplacementMapping( bool b );
void setShowShadow( bool b );
void setShowHitBoxes( bool b );
void setShowBones( bool b );
void setShowAttachments( bool b );
void setHighlightBone( int index );
void setLOD( int index, bool setLODchoice, bool force );
void setAutoLOD( bool b );
void setSoftwareSkin( bool b );
void setOverbright( bool b );
void setLODMetric( float metric );
void setPolycount( int polycount );
void setTransparent( bool isTransparent );
void updatePoseParameters( void );
void setFOV( float fov );
void setPlaySounds( bool b );
void setShowOriginAxis( bool b );
void setOriginAxisLength( float originAxisLength );
void updateSequenceSizes( int tabWidth );
void initSequenceChoices( int iOnlyInitSlot = -1 );
void setSequence( int nSequence );
void showActivityModifiers( int sequence );
void GetSequenceFilter( int sequenceSlot, char *pszFilterBuf, int iBufSize );
void updateGroundSpeed( void );
void setOverlaySequence( int num, int nSequence, float weight );
void updateTransitionAmount();
void startBlending( void );
void setSpeedScale ( float scale );
void updateSpeedScale( void );
void setBlend( int index, float value );
int getFrameSelection( void );
void setFrame( float frame );
void updateFrameSelection( void );
void updateFrameSlider( void );
void UpdateEventHistory( void );
void initBodypartChoices();
void setBodypart( int index );
void setSubmodel( int index );
void initBoneControllers();
void setBoneController( int index );
void setBoneControllerValue (int index, float value);
void initSkinChoices();
void initMaterialChoices();
void setModelInfo();
void initPhysicsBones();
void initIncludedModels();
void initLODs();
void centerView();
void UpdateMaterialList ();
void centerVerts();
void viewmodelView();
void cs_gunsidemodelView();
void dotaView();
void fullscreen();
void setMatSysWindow( MatSysWindow *window ) { d_MatSysWindow = window; }
void ConvertFlexData();
void MapExtraFlexes( int nSlot );
void initFlexes();
int GetCurrentHitboxSet( void );
void BuildIKRuleQCString();
void UpdateIKRuleWindow();
void BuildEventQCString();
void CreateSortedSequenceList( CStudioHdr* hdr, int *pSequence );
void SetFrameSlider( float flFrame );
int GetSequenceForSelection( int sequenceSlot, int selection );
int SetSequenceForSelection( int sequenceSlot, int selection, int sequence );
int GetSelectionForSequence( int sequenceSlot, int sequence );
int SetSelectionForSequence( int sequenceSlot, int sequence, int selection );
void SaveSelectedSequences( void );
void RestoreSelectedSequences( void );
void UpdateMaterialVars( void );
void setCameraOrigin( float flX, float flY, float flZ );
void setCameraAngles( float flX, float flY, float flZ );
void setLightAngles( float flX, float flY, float flZ );
void setMaterialVar( const char *p_szMatParameterName, const char *p_szMatParameterValue );
void UpdateSubmodelWindow( void );
void UpdateSubmodelSelection( void );
void redrawMatSysWin( void );
public:
// Sets up the main tabs
void SetupRenderWindow( mxTab* pTab );
void SetupSequenceWindow( mxTab* pTab );
void SetupBoneControlWindow( mxTab* pTab );
void SetupBodyWindow( mxTab* pTab );
void SetupFlexWindow( mxTab* pTab );
void SetupPhysicsWindow( mxTab* pTab );
void SetupSoftbodyWindow( mxTab* pTab );
void SetupAttachmentsWindow( mxTab *pTab );
void SetupIKRuleWindow( mxTab *pTab );
void SetupEventWindow( mxTab *pTab );
void SetupMatVarWindow( mxTab *pTab );
void SetupSubmodelWindow( mxTab *pTab );
void SetupCompileWindow( mxTab *pTab );
bool m_bVMTInfoLoaded;
void AddQCRecordPath( const char* szPath, bool bCompileWhenLoaded = false );
void UpdateQCPathPanel( bool bUpdateList = true, int nForceSelection = -1 );
void CompileTimerUpdate( void );
void CompileSelectedIndex( void );
void UpdateBoneWeightInspect( void );
};
extern ControlPanel *g_ControlPanel;
#endif // INCLUDED_CONTROLPANEL