summaryrefslogtreecommitdiff
path: root/utils/hlmv/mdlviewer.h
blob: d13b5a6de453c0c50833506fe2a6c222248ab1e0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
// $NoKeywords: $
//
//=============================================================================//
//
//                 Half-Life Model Viewer (c) 1999 by Mete Ciragan
//
// file:           mdlviewer.h
// last modified:  Apr 28 1999, Mete Ciragan
// copyright:      The 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_MDLVIEWER
#define INCLUDED_MDLVIEWER



#ifndef INCLUDED_MXWINDOW
#include "mxWindow.h"
#endif



#define IDC_FILE_LOADMODEL					1001
#define IDC_FILE_LOADBACKGROUNDTEX			1002
#define IDC_FILE_LOADGROUNDTEX				1003
#define IDC_FILE_UNLOADGROUNDTEX			1004
#define IDC_FILE_CLOSEPAKFILE				1007
#define IDC_FILE_RECENTMODELS1				1008
#define IDC_FILE_RECENTMODELS2				1009
#define IDC_FILE_RECENTMODELS3				1010
#define IDC_FILE_RECENTMODELS4				1011
#define IDC_FILE_RECENTMODELS5				1012
#define IDC_FILE_RECENTMODELS6				1013
#define IDC_FILE_RECENTMODELS7				1014
#define IDC_FILE_RECENTMODELS8				1015
#define IDC_FILE_EXIT						1016
#define IDC_FILE_REFRESH					1017
#define IDC_FILE_LOADMERGEDMODEL			1018
#define IDC_FILE_UNLOADMERGEDMODEL			1019
#define IDC_FILE_LOADMODEL_STEAM			1020
#define IDC_FILE_LOADMERGEDMODEL_STEAM		1021
#define IDC_FLUSH_SHADERS					1022

#define IDC_OPTIONS_COLORBACKGROUND			1101
#define IDC_OPTIONS_COLORGROUND				1102
#define IDC_OPTIONS_COLORLIGHT				1103
#define IDC_OPTIONS_COLORAMBIENT			1104
#define IDC_OPTIONS_CENTERVIEW				1105
#define IDC_OPTIONS_CENTERVERTS				1106
#define IDC_OPTIONS_MAKESCREENSHOT			1107
#define IDC_OPTIONS_DUMP					1108
#define IDC_OPTIONS_VIEWMODEL				1109
#define IDC_OPTIONS_SYNCHLMVCAMERA			1110
#define IDC_OPTIONS_LINKHLMV				1111
#define IDC_OPTIONS_UNLINKHLMV				1112

#define IDC_VIEW_FILEASSOCIATIONS			1201
#define IDC_VIEW_ACTIVITIES					1202
#define IDC_VIEW_HIDDEN						1203

#define IDC_HELP_GOTOHOMEPAGE				1301
#define IDC_HELP_ABOUT						1302

// Keyboard accelerators (not items on any menu...checkboxes on Render tab)
#define IDC_ACCEL_WIREFRAME					1401
#define IDC_ACCEL_ATTACHMENTS				1402
#define IDC_ACCEL_GROUND					1403
#define IDC_ACCEL_HITBOXES					1404
#define IDC_ACCEL_BONES						1405
#define IDC_ACCEL_BACKGROUND				1406
#define IDC_ACCEL_MOVEMENT					1407
#define IDC_ACCEL_NORMALS					1408
#define IDC_ACCEL_TANGENTS					1409
#define IDC_ACCEL_SHADOW					1410

#define IDC_FILE_UNLOADMERGEDMODEL1			1414
#define IDC_FILE_UNLOADMERGEDMODEL2			1415
#define IDC_FILE_UNLOADMERGEDMODEL3			1416
#define IDC_FILE_UNLOADMERGEDMODEL4			1417
#define IDC_FILE_UNLOADMERGEDMODEL5			1418
#define IDC_FILE_UNLOADMERGEDMODEL6			1419
#define IDC_FILE_UNLOADMERGEDMODEL7			1420
#define IDC_FILE_UNLOADMERGEDMODEL8			1421
#define IDC_FILE_UNLOADMERGEDMODEL9			1422
#define IDC_FILE_UNLOADMERGEDMODEL10		1423
#define IDC_FILE_UNLOADMERGEDMODEL11		1424
#define IDC_FILE_UNLOADMERGEDMODEL12		1425

#define IDC_FILE_UNLOADALLMERGEDMODELS		1430

class mxMenuBar;
class MatSysWindow;
class ControlPanel;
class mxMenu;

enum { Action, Size, Timer, Idle, Show, Hide,
		MouseUp, MouseDown, MouseMove, MouseDrag,
		KeyUp, KeyDown
	};

class MDLViewer : public mxWindow
{
	mxMenuBar *mb;
	MatSysWindow *d_MatSysWindow;
	ControlPanel *d_cpl;
	mxMenu *menuOptions;
	mxMenu *menuView;

	void loadRecentFiles ();
	void saveRecentFiles ();
	void initRecentFiles ();

public:
	// CREATORS
	MDLViewer ();
	~MDLViewer ();

	// MANIPULATORS
	virtual int handleEvent (mxEvent *event);

	void SendModelTransformToLinkedHlmv();
	void SendLightRotToLinkedHlmv();

	void redraw ();

	void handleIpcCommand( char *szCommand );

	void Refresh( void );
	void LoadModelFile( const char *pszFile, int slot = -1 );
	void SaveScreenShot( const char *pszFile );
	void DumpText( const char *pszFile );

	// ACCESSORS
	mxMenuBar *getMenuBar () const { return mb; }
	MatSysWindow *getMatSysWindow () const { return d_MatSysWindow; }

	int GetCurrentHitboxSet( void );

private:
	const char* SteamGetOpenFilename();
};



extern MDLViewer *g_MDLViewer;
extern char g_appTitle[];



#endif // INCLUDED_MDLVIEWER