//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // //=============================================================================// #ifndef POSITIONWATCHER_H #define POSITIONWATCHER_H #ifdef _WIN32 #pragma once #endif #include "ehandle.h" // inherit from this interface to be able to call WatchPositionChanges abstract_class IWatcherCallback{public : virtual ~IWatcherCallback(){}}; abstract_class IPositionWatcher : public IWatcherCallback { public: virtual void NotifyPositionChanged(CBaseEntity * pEntity) = 0; }; // NOTE: The table of watchers is NOT saved/loaded! Recreate these links on // restore void ReportPositionChanged(CBaseEntity *pMovedEntity); void WatchPositionChanges(CBaseEntity *pWatcher, CBaseEntity *pMovingEntity); void RemovePositionWatcher(CBaseEntity *pWatcher, CBaseEntity *pMovingEntity); // inherit from this interface to be able to call WatchPositionChanges abstract_class IVPhysicsWatcher : public IWatcherCallback { public: virtual void NotifyVPhysicsStateChanged( IPhysicsObject * pPhysics, CBaseEntity * pEntity, bool bAwake) = 0; }; // NOTE: The table of watchers is NOT saved/loaded! Recreate these links on // restore void ReportVPhysicsStateChanged(IPhysicsObject *pPhysics, CBaseEntity *pEntity, bool bAwake); void WatchVPhysicsStateChanges(CBaseEntity *pWatcher, CBaseEntity *pPhysicsEntity); void RemoveVPhysicsStateWatcher(CBaseEntity *pWatcher, CBaseEntity *pPhysicsEntity); #endif // POSITIONWATCHER_H