//========= 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