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