48 lines
1.5 KiB
C
48 lines
1.5 KiB
C
|
//========= Copyright <20> 1996-2005, 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
|