This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
nekohook/modules/source2013/sdk/game/client/toolframework_client.h
2020-08-04 13:13:01 -04:00

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