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.
2020-08-04 13:13:01 -04:00

46 lines
1.6 KiB
C++

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