mirror of
https://github.com/0TheSpy/Seaside.git
synced 2025-01-07 10:03:29 +08:00
190 lines
7.4 KiB
C++
190 lines
7.4 KiB
C++
#ifndef ITOOLENTITY_H
|
|
#define ITOOLENTITY_H
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "interface.h"
|
|
#include "utlvector.h"
|
|
#include "Color.h"
|
|
#include "basehandle.h"
|
|
#include "iclientrenderable.h"
|
|
#include "ishadowmgr.h"
|
|
|
|
|
|
class IServerEntity;
|
|
class IClientEntity;
|
|
class IToolSystem;
|
|
class IClientRenderable;
|
|
class Vector;
|
|
class QAngle;
|
|
class CBaseEntity;
|
|
class CBaseAnimating;
|
|
class CTakeDamageInfo;
|
|
class ITempEntsSystem;
|
|
class IEntityFactoryDictionary;
|
|
|
|
|
|
typedef unsigned int HTOOLHANDLE;
|
|
enum
|
|
{
|
|
HTOOLHANDLE_INVALID = 0
|
|
};
|
|
|
|
|
|
enum ClientShadowFlags_t
|
|
{
|
|
SHADOW_FLAGS_USE_RENDER_TO_TEXTURE = (SHADOW_FLAGS_LAST_FLAG << 1),
|
|
SHADOW_FLAGS_ANIMATING_SOURCE = (SHADOW_FLAGS_LAST_FLAG << 2),
|
|
SHADOW_FLAGS_USE_DEPTH_TEXTURE = (SHADOW_FLAGS_LAST_FLAG << 3),
|
|
CLIENT_SHADOW_FLAGS_LAST_FLAG = SHADOW_FLAGS_USE_DEPTH_TEXTURE
|
|
};
|
|
|
|
|
|
typedef void* EntitySearchResult;
|
|
|
|
|
|
class IClientTools : public IBaseInterface
|
|
{
|
|
public:
|
|
virtual HTOOLHANDLE AttachToEntity(EntitySearchResult entityToAttach) = 0;
|
|
virtual void DetachFromEntity(EntitySearchResult entityToDetach) = 0;
|
|
|
|
virtual bool IsValidHandle(HTOOLHANDLE handle) = 0;
|
|
|
|
virtual int GetNumRecordables() = 0;
|
|
virtual HTOOLHANDLE GetRecordable(int index) = 0;
|
|
|
|
virtual EntitySearchResult NextEntity(EntitySearchResult currentEnt) = 0;
|
|
EntitySearchResult FirstEntity() { return NextEntity(NULL); }
|
|
|
|
virtual void SetEnabled(HTOOLHANDLE handle, bool enabled) = 0;
|
|
virtual void SetRecording(HTOOLHANDLE handle, bool recording) = 0;
|
|
virtual bool ShouldRecord(HTOOLHANDLE handle) = 0;
|
|
|
|
virtual HTOOLHANDLE GetToolHandleForEntityByIndex(int entindex) = 0;
|
|
|
|
virtual int GetModelIndex(HTOOLHANDLE handle) = 0;
|
|
virtual const char* GetModelName(HTOOLHANDLE handle) = 0;
|
|
virtual const char* GetClassname(HTOOLHANDLE handle) = 0;
|
|
|
|
virtual void AddClientRenderable(IClientRenderable* pRenderable, int renderGroup) = 0;
|
|
virtual void RemoveClientRenderable(IClientRenderable* pRenderable) = 0;
|
|
virtual void SetRenderGroup(IClientRenderable* pRenderable, int renderGroup) = 0;
|
|
virtual void MarkClientRenderableDirty(IClientRenderable* pRenderable) = 0;
|
|
virtual void UpdateProjectedTexture(ClientShadowHandle_t h, bool bForce) = 0;
|
|
|
|
virtual bool DrawSprite(IClientRenderable* pRenderable, float scale, float frame, int rendermode, int renderfx, const Color& color, float flProxyRadius, int* pVisHandle) = 0;
|
|
|
|
virtual EntitySearchResult GetLocalPlayer() = 0;
|
|
virtual bool GetLocalPlayerEyePosition(Vector& org, QAngle& ang, float& fov) = 0;
|
|
|
|
virtual ClientShadowHandle_t CreateShadow(CBaseHandle handle, int nFlags) = 0;
|
|
virtual void DestroyShadow(ClientShadowHandle_t h) = 0;
|
|
|
|
virtual ClientShadowHandle_t CreateFlashlight(const FlashlightState_t& lightState) = 0;
|
|
virtual void DestroyFlashlight(ClientShadowHandle_t h) = 0;
|
|
virtual void UpdateFlashlightState(ClientShadowHandle_t h, const FlashlightState_t& lightState) = 0;
|
|
|
|
virtual void AddToDirtyShadowList(ClientShadowHandle_t h, bool force = false) = 0;
|
|
virtual void MarkRenderToTextureShadowDirty(ClientShadowHandle_t h) = 0;
|
|
|
|
virtual void EnableRecordingMode(bool bEnable) = 0;
|
|
virtual bool IsInRecordingMode() const = 0;
|
|
|
|
virtual void TriggerTempEntity(KeyValues* pKeyValues) = 0;
|
|
|
|
virtual int GetOwningWeaponEntIndex(int entindex) = 0;
|
|
virtual int GetEntIndex(EntitySearchResult entityToAttach) = 0;
|
|
|
|
virtual int FindGlobalFlexcontroller(char const* name) = 0;
|
|
virtual char const* GetGlobalFlexControllerName(int idx) = 0;
|
|
|
|
virtual EntitySearchResult GetOwnerEntity(EntitySearchResult currentEnt) = 0;
|
|
|
|
virtual bool IsPlayer(EntitySearchResult currentEnt) = 0;
|
|
virtual bool IsBaseCombatCharacter(EntitySearchResult currentEnt) = 0;
|
|
virtual bool IsNPC(EntitySearchResult currentEnt) = 0;
|
|
|
|
virtual Vector GetAbsOrigin(HTOOLHANDLE handle) = 0;
|
|
virtual QAngle GetAbsAngles(HTOOLHANDLE handle) = 0;
|
|
|
|
virtual void ReloadParticleDefintions(const char* pFileName, const void* pBufData, int nLen) = 0;
|
|
|
|
virtual void PostToolMessage(KeyValues* pKeyValues) = 0;
|
|
|
|
virtual void EnableParticleSystems(bool bEnable) = 0;
|
|
|
|
virtual bool IsRenderingThirdPerson() const = 0;
|
|
};
|
|
|
|
#define VCLIENTTOOLS_INTERFACE_VERSION "VCLIENTTOOLS001"
|
|
|
|
|
|
class IServerTools : public IBaseInterface
|
|
{
|
|
public:
|
|
virtual IServerEntity* GetIServerEntity(IClientEntity* pClientEntity) = 0;
|
|
virtual bool SnapPlayerToPosition(const Vector& org, const QAngle& ang, IClientEntity* pClientPlayer = NULL) = 0;
|
|
virtual bool GetPlayerPosition(Vector& org, QAngle& ang, IClientEntity* pClientPlayer = NULL) = 0;
|
|
virtual bool SetPlayerFOV(int fov, IClientEntity* pClientPlayer = NULL) = 0;
|
|
virtual int GetPlayerFOV(IClientEntity* pClientPlayer = NULL) = 0;
|
|
virtual bool IsInNoClipMode(IClientEntity* pClientPlayer = NULL) = 0;
|
|
|
|
virtual CBaseEntity* FirstEntity(void) = 0;
|
|
virtual CBaseEntity* NextEntity(CBaseEntity* pEntity) = 0;
|
|
virtual CBaseEntity* FindEntityByHammerID(int iHammerID) = 0;
|
|
|
|
virtual bool GetKeyValue(CBaseEntity* pEntity, const char* szField, char* szValue, int iMaxLen) = 0;
|
|
virtual bool SetKeyValue(CBaseEntity* pEntity, const char* szField, const char* szValue) = 0;
|
|
virtual bool SetKeyValue(CBaseEntity* pEntity, const char* szField, float flValue) = 0;
|
|
virtual bool SetKeyValue(CBaseEntity* pEntity, const char* szField, const Vector& vecValue) = 0;
|
|
|
|
virtual CBaseEntity* CreateEntityByName(const char* szClassName) = 0;
|
|
virtual void DispatchSpawn(CBaseEntity* pEntity) = 0;
|
|
|
|
virtual void ReloadParticleDefintions(const char* pFileName, const void* pBufData, int nLen) = 0;
|
|
|
|
virtual void AddOriginToPVS(const Vector& org) = 0;
|
|
virtual void MoveEngineViewTo(const Vector& vPos, const QAngle& vAngles) = 0;
|
|
|
|
virtual bool DestroyEntityByHammerId(int iHammerID) = 0;
|
|
virtual CBaseEntity* GetBaseEntityByEntIndex(int iEntIndex) = 0;
|
|
virtual void RemoveEntity(CBaseEntity* pEntity) = 0;
|
|
virtual void RemoveEntityImmediate(CBaseEntity* pEntity) = 0;
|
|
virtual IEntityFactoryDictionary* GetEntityFactoryDictionary(void) = 0;
|
|
|
|
virtual void SetMoveType(CBaseEntity* pEntity, int val) = 0;
|
|
virtual void SetMoveType(CBaseEntity* pEntity, int val, int moveCollide) = 0;
|
|
virtual void ResetSequence(CBaseAnimating* pEntity, int nSequence) = 0;
|
|
virtual void ResetSequenceInfo(CBaseAnimating* pEntity) = 0;
|
|
|
|
virtual void ClearMultiDamage(void) = 0;
|
|
virtual void ApplyMultiDamage(void) = 0;
|
|
virtual void AddMultiDamage(const CTakeDamageInfo& pTakeDamageInfo, CBaseEntity* pEntity) = 0;
|
|
virtual void RadiusDamage(const CTakeDamageInfo& info, const Vector& vecSrc, float flRadius, int iClassIgnore, CBaseEntity* pEntityIgnore) = 0;
|
|
|
|
virtual ITempEntsSystem* GetTempEntsSystem(void) = 0;
|
|
};
|
|
|
|
typedef IServerTools IServerTools001;
|
|
|
|
#define VSERVERTOOLS_INTERFACE_VERSION_1 "VSERVERTOOLS001"
|
|
#define VSERVERTOOLS_INTERFACE_VERSION "VSERVERTOOLS002"
|
|
#define VSERVERTOOLS_INTERFACE_VERSION_INT 2
|
|
|
|
class IServerChoreoTools : public IBaseInterface
|
|
{
|
|
public:
|
|
|
|
virtual EntitySearchResult NextChoreoEntity(EntitySearchResult currentEnt) = 0;
|
|
EntitySearchResult FirstChoreoEntity() { return NextChoreoEntity(NULL); }
|
|
virtual const char* GetSceneFile(EntitySearchResult sr) = 0;
|
|
|
|
virtual int GetEntIndex(EntitySearchResult sr) = 0;
|
|
virtual void ReloadSceneFromDisk(int entindex) = 0;
|
|
};
|
|
|
|
#define VSERVERCHOREOTOOLS_INTERFACE_VERSION "VSERVERCHOREOTOOLS001"
|
|
|
|
#endif |