All pastes #971405 Raw Edit

Something

public text v1 · immutable
·published 2008-04-04 18:39 UTC
rendered paste body
// IServerNetworkable is the interface the engine uses for all networkable data.
class IServerNetworkable
{
// These functions are handled automatically by the server_class macros and CBaseNetworkable.
public:
	// Gets at the entity handle associated with the collideable
	virtual IHandleEntity	*GetEntityHandle() = 0;

	// Tell the engine which class this object is.
	virtual ServerClass*	GetServerClass() = 0;

	virtual edict_t			*GetEdict() const = 0;

	virtual const char*		GetClassName() const = 0;
	virtual void			Release() = 0;

	virtual int				AreaNum() const = 0;

	// In place of a generic QueryInterface.
	virtual CBaseNetworkable* GetBaseNetworkable() = 0;
	virtual CBaseEntity*	GetBaseEntity() = 0; // Only used by game code.
	virtual PVSInfo_t*		GetPVSInfo() = 0; // get current visibilty data

protected:
	// Should never call delete on this! 
	virtual					~IServerNetworkable() {}
};


#endif // ISERVERNETWORKABLE_H