Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
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.

157 lines
3.5 KiB

5 years ago
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//
//=============================================================================//
//
// Half-Life Model Viewer (c) 1999 by Mete Ciragan
//
// file: ViewerSettings.h
// last modified: May 29 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: mete@swissquake.ch
// web: http://www.swissquake.ch/chumbalum-soft/
//
#ifndef INCLUDED_VIEWERSETTINGS
#define INCLUDED_VIEWERSETTINGS
#include "mathlib/vector.h"
enum // render modes
{
RM_WIREFRAME = 0,
// RM_FLATSHADED,
RM_SMOOTHSHADED,
RM_TEXTURED,
RM_BONEWEIGHTS,
RM_SHOWBADVERTEXDATA,
RM_TEXCOORDS,
};
#define HLMV_MAX_MERGED_MODELS 12
struct ViewerSettings
{
char registrysubkey[ 64 ];
int application_mode; // 0 expression, 1 choreo
bool showHitBoxes;
bool showBones;
bool showAttachments;
bool showPhysicsModel;
bool showPhysicsPreview;
bool showSequenceBoxes;
bool enableIK;
bool enableTargetIK;
bool showNormals;
bool showTangentFrame;
bool overlayWireframe;
bool enableNormalMapping;
bool enableParallaxMapping;
bool enableSpecular;
bool showIllumPosition;
bool playSounds;
// Current attachment we're editing. -1 if none.
int m_iEditAttachment;
bool showLightingCenter;
int highlightPhysicsBone;
int highlightHitbox;
int highlightBone;
QAngle lightrot; // light rotation
float lColor[4]; // directional color
float aColor[4]; // ambient color
// external
// model
float fov; // horizontal field of view
// render
int renderMode;
bool showBackground;
bool showGround;
bool showTexture;
bool showMovement;
bool showShadow;
int texture;
int skin;
int materialIndex;
bool showOriginAxis;
float originAxisLength;
// animation
float speedScale;
bool blendSequenceChanges;
bool animateWeapons;
// bodyparts and bonecontrollers
//int submodels[32];
//float controllers[8];
// fullscreen
int xpos, ypos;
int width, height;
bool cds;
// colors
float bgColor[4]; // background color
float gColor[4];
// misc
bool pause;
bool rotating;
bool mousedown;
// only used for fullscreen mode
// char modelFile[256];
//char backgroundTexFile[256];
//char groundTexFile[256];
int lod;
bool autoLOD;
bool softwareSkin;
bool overbright;
int thumbnailsize;
int thumbnailsizeanim;
int speechapiindex;
int cclanguageid; // Close captioning language id (see sentence.h enum)
bool showHidden;
bool showActivities;
bool faceposerToolsDriveMouth;
char mergeModelFile[HLMV_MAX_MERGED_MODELS][256];
ViewerSettings();
};
extern ViewerSettings g_viewerSettings;
class StudioModel;
void InitViewerSettings ( const char *subkey );
bool LoadViewerSettings (const char *filename, StudioModel *pModel );
bool SaveViewerSettings (const char *filename, StudioModel *pModel );
bool LoadViewerRootSettings( void );
bool SaveViewerRootSettings( void );
// For saving/loading "global" settings
bool LoadViewerSettingsInt( char const *keyname, int *value );
bool SaveViewerSettingsInt ( const char *keyname, int value );
#endif // INCLUDED_VIEWERSETTINGS