//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============// // // Purpose: // //=============================================================================// #ifndef MDLVIEWER_H #define MDLVIEWER_H #ifdef _WIN32 #pragma once #endif #include "sceneimage.h" #include "tier1/UtlVector.h" #include "tier1/UtlString.h" #define IDC_FILE_LOADMODEL 1001 #define IDC_FILE_LOADBACKGROUNDTEX 1002 #define IDC_FILE_LOADGROUNDTEX 1003 #define IDC_FILE_UNLOADGROUNDTEX 1004 #define IDC_FILE_RECENTFILES1 1008 #define IDC_FILE_RECENTFILES2 1009 #define IDC_FILE_RECENTFILES3 1010 #define IDC_FILE_RECENTFILES4 1011 #define IDC_FILE_RECENTFILES5 1012 #define IDC_FILE_RECENTFILES6 1013 #define IDC_FILE_RECENTFILES7 1014 #define IDC_FILE_RECENTFILES8 1015 #define IDC_FILE_EXIT 1016 #define IDC_FILE_REFRESH 1017 #define IDC_FILE_SAVESOUNDSCRIPTCHANGES 1018 #define IDC_FILE_REBUILDSCENESIMAGE 1019 #define IDC_FILE_UPDATESCENESIMAGE 1028 #define IDC_EXPRESSIONS_SAVE 1020 #define IDC_EXPRESSIONS_LOAD 1021 #define IDC_EXPRESSIONS_SAVEAS 1022 #define IDC_EXPRESSIONS_EXPORT 1023 #define IDC_EXPRESSIONS_CLOSE 1024 #define IDC_EXPRESSIONS_CLOSEALL 1025 #define IDC_EXPRESSIONS_NEW 1026 #define IDC_EXPRESSIONS_REDOBITMAPS 1027 // #define IDC_FILE_UPDATESCENESIMAGE 1028 #define IDC_CHOREOSCENE_NEW 1030 #define IDC_CHOREOSCENE_LOAD 1031 #define IDC_CHOREOSCENE_SAVE 1032 #define IDC_CHOREOSCENE_SAVEAS 1033 #define IDC_CHOREOSCENE_CLOSE 1034 #define IDC_CHOREOSCENE_ADDACTOR 1035 #define IDC_FILE_LOADMODEL_STEAM 1036 #define IDC_CHOREOSCENE_SCRUB_UNITS 1037 #define IDC_CHOREOSCENE_LOADNEXT 1038 #define IDC_OPTIONS_COLORBACKGROUND 1101 #define IDC_OPTIONS_COLORGROUND 1102 #define IDC_OPTIONS_COLORLIGHT 1103 #define IDC_OPTIONS_CENTERVIEW 1104 #define IDC_OPTIONS_MAKESCREENSHOT 1105 #define IDC_OPTIONS_DUMP 1106 #define IDC_OPTIONS_CENTERONFACE 1107 #define IDC_OPTIONS_CLEARMODELSOUNDS 1108 #define IDC_OPTIONS_LANGUAGESTART 1150 #define IDC_WINDOW_FIRSTTOOL 1200 #define IDC_WINDOW_LASTTOOL 1231 #define IDC_WINDOW_TILE_HORIZ 1232 #define IDC_WINDOW_TILE_VERT 1233 #define IDC_WINDOW_CASCADE 1234 #define IDC_WINDOW_HIDEALL 1235 #define IDC_WINDOW_SHOWALL 1236 #define IDC_WINDOW_TILE 1237 #define IDC_WINDOW_TAB 1238 #define IDC_MODEL_TAB 1239 #define IDC_GRIDSETTINGS 1240 #define IDC_HELP_GOTOHOMEPAGE 1301 #define IDC_HELP_ABOUT 1302 #define IDC_FOUNDRY_PLAYSCENE 1400 class mxMenuBar; class mxMenu; class MatSysWindow; class ControlPanel; class FlexPanel; class mxStatusWindow; class CChoreoView; class CMDLViewerWorkspace; class CMDLViewerWindowTab; class CMDLViewerModelTab; class CMDLViewerGridSettings; enum { Action, Size, Timer, Idle, Show, Hide, MouseUp, MouseDown, MouseMove, MouseDrag, KeyUp, KeyDown }; class MDLViewer : public mxWindow, public ISceneCompileStatus { mxMenuBar *mb; mxMenu *menuFile; mxMenu *menuOptions; mxMenu *menuCloseCaptionLanguages; mxMenu *menuWindow; mxMenu *menuHelp; mxMenu *menuEdit; mxMenu *menuExpressions; mxMenu *menuChoreography; mxMenu *menuFoundry; CMDLViewerWorkspace *workspace; CMDLViewerWindowTab *windowtab; CMDLViewerModelTab *modeltab; CMDLViewerGridSettings *gridsettings; void loadRecentFiles (); void saveRecentFiles (); void initRecentFiles (); int m_nCurrentFrame; public: // CREATORS MDLViewer (); ~MDLViewer (); virtual void OnDelete(); virtual bool CanClose(); virtual void UpdateStatus( char const *pchSceneName, bool bQuiet, int nIndex, int nCount ); void OnFileLoaded( char const *pszFile ); // MANIPULATORS virtual int handleEvent (mxEvent *event); void redraw (); virtual bool PaintBackground( void ); void UpdateWindowMenu( void ); void UpdateLanguageMenu( int currentLanguageId ); void InitModelTab( void ); void InitGridSettings( void ); int GetActiveModelTab( void ); void SetActiveModelTab( int modelindex ); void Refresh( void ); void LoadModelFile( const char *pszFile ); int GetCurrentHitboxSet(void); virtual bool Closing( void ); void LoadWindowPositions( void ); void SaveWindowPositions( void ); void OnSaveSoundScriptChanges(); void OnRebuildScenesImage(); void OnUpdateScenesImage(); void OnCascade(); void OnTile(); void OnTileHorizontally(); void OnTileVertically(); void OnHideAll(); void OnShowAll(); void Think( float dt ); int GetCurrentFrame( void ); // ACCESSORS mxMenuBar *getMenuBar () const { return mb; } void LoadModel_Steam(); void OnVCDSaved( char const *pFullpath ); void OnPlaySceneInFoundry(); private: void DoTile( int x, int y ); void LoadPosition( void ); void SavePosition( void ); bool AreSoundScriptsDirty(); void UpdateTheUpdateScenesImageMenu(); bool m_bAlwaysUpdate; bool m_bOldSoundScriptsDirty; CUtlVector< CUtlString > m_vecDirtyVCDs; }; const char *GetGameDirectory( ); void CreatePath( const char *pPath ); extern MDLViewer *g_MDLViewer; extern char g_appTitle[]; #endif // MDLVIEWER_H