94 lines
3.1 KiB
C++
94 lines
3.1 KiB
C++
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
//===========================================================================//
|
|
|
|
#ifndef TOOLFRAMEWORK_CLIENT_H
|
|
#define TOOLFRAMEWORK_CLIENT_H
|
|
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "toolframework/itoolentity.h"
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Forward declarations
|
|
//-----------------------------------------------------------------------------
|
|
class KeyValues;
|
|
struct AudioState_t;
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Posts a message to all tools
|
|
//-----------------------------------------------------------------------------
|
|
void ToolFramework_PostToolMessage(HTOOLHANDLE hEntity, KeyValues *msg);
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Should we render with a 3rd person camera?
|
|
//-----------------------------------------------------------------------------
|
|
bool ToolFramework_IsThirdPersonCamera();
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Are tools enabled?
|
|
//-----------------------------------------------------------------------------
|
|
#ifndef NO_TOOLFRAMEWORK
|
|
bool ToolsEnabled();
|
|
#else
|
|
#define ToolsEnabled() 0
|
|
#endif
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// View manipulation
|
|
//-----------------------------------------------------------------------------
|
|
void ToolFramework_AdjustEngineViewport(int &x, int &y, int &width,
|
|
int &height);
|
|
bool ToolFramework_SetupEngineView(Vector &origin, QAngle &angles, float &fov);
|
|
bool ToolFramework_SetupAudioState(AudioState_t &audioState);
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// material recording - primarily for proxy materials
|
|
//-----------------------------------------------------------------------------
|
|
void ToolFramework_RecordMaterialParams(IMaterial *pMaterial);
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Recorded temp entity structures
|
|
//-----------------------------------------------------------------------------
|
|
enum TERecordingType_t {
|
|
TE_DYNAMIC_LIGHT = 0,
|
|
TE_WORLD_DECAL,
|
|
TE_DISPATCH_EFFECT,
|
|
TE_MUZZLE_FLASH,
|
|
TE_ARMOR_RICOCHET,
|
|
TE_METAL_SPARKS,
|
|
TE_SMOKE,
|
|
TE_SPARKS,
|
|
TE_BLOOD_SPRITE,
|
|
TE_BREAK_MODEL,
|
|
TE_GLOW_SPRITE,
|
|
TE_PHYSICS_PROP,
|
|
TE_SPRITE_SINGLE,
|
|
TE_SPRITE_SPRAY,
|
|
TE_CONCUSSIVE_EXPLOSION,
|
|
TE_BLOOD_STREAM,
|
|
TE_SHATTER_SURFACE,
|
|
TE_DECAL,
|
|
TE_PROJECT_DECAL,
|
|
TE_EXPLOSION,
|
|
|
|
TE_RECORDING_TYPE_COUNT,
|
|
};
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Helper class to indicate ownership of effects
|
|
//-----------------------------------------------------------------------------
|
|
class CRecordEffectOwner {
|
|
public:
|
|
CRecordEffectOwner(C_BaseEntity *pEntity, bool bIsViewModel = false);
|
|
~CRecordEffectOwner();
|
|
|
|
private:
|
|
bool m_bToolsEnabled;
|
|
};
|
|
|
|
#endif // TOOLFRAMEWORK_CLIENT_H
|