mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-08 09:49:36 +00:00
1
This commit is contained in:
@@ -0,0 +1,139 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//===========================================================================//
|
||||
|
||||
#ifndef EFFECT_DISPATCH_DATA_H
|
||||
#define EFFECT_DISPATCH_DATA_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "particle_parse.h"
|
||||
|
||||
#ifdef CLIENT_DLL
|
||||
|
||||
#include "dt_recv.h"
|
||||
#include "client_class.h"
|
||||
|
||||
EXTERN_RECV_TABLE( DT_EffectData );
|
||||
|
||||
#else
|
||||
|
||||
#include "dt_send.h"
|
||||
#include "server_class.h"
|
||||
|
||||
EXTERN_SEND_TABLE( DT_EffectData );
|
||||
|
||||
#endif
|
||||
|
||||
// NOTE: These flags are specifically *not* networked; so it's placed above the max effect flag bits
|
||||
#define EFFECTDATA_NO_RECORD 0x80000000
|
||||
|
||||
#define MAX_EFFECT_FLAG_BITS 8
|
||||
|
||||
#define CUSTOM_COLOR_CP1 9
|
||||
#define CUSTOM_COLOR_CP2 10
|
||||
|
||||
// This is the class that holds whatever data we're sending down to the client to make the effect.
|
||||
class CEffectData
|
||||
{
|
||||
public:
|
||||
Vector m_vOrigin;
|
||||
Vector m_vStart;
|
||||
Vector m_vNormal;
|
||||
QAngle m_vAngles;
|
||||
int m_fFlags;
|
||||
#ifdef CLIENT_DLL
|
||||
ClientEntityHandle_t m_hEntity;
|
||||
#else
|
||||
int m_nEntIndex;
|
||||
#endif
|
||||
float m_flScale;
|
||||
float m_flMagnitude;
|
||||
float m_flRadius;
|
||||
int m_nAttachmentIndex;
|
||||
short m_nSurfaceProp;
|
||||
|
||||
// Some TF2 specific things
|
||||
int m_nMaterial;
|
||||
int m_nDamageType;
|
||||
int m_nHitBox;
|
||||
|
||||
unsigned char m_nColor;
|
||||
|
||||
// Color customizability
|
||||
bool m_bCustomColors;
|
||||
te_tf_particle_effects_colors_t m_CustomColors;
|
||||
|
||||
bool m_bControlPoint1;
|
||||
te_tf_particle_effects_control_point_t m_ControlPoint1;
|
||||
|
||||
// Don't mess with stuff below here. DispatchEffect handles all of this.
|
||||
public:
|
||||
CEffectData()
|
||||
{
|
||||
m_vOrigin.Init();
|
||||
m_vStart.Init();
|
||||
m_vNormal.Init();
|
||||
m_vAngles.Init();
|
||||
|
||||
m_fFlags = 0;
|
||||
#ifdef CLIENT_DLL
|
||||
m_hEntity = INVALID_EHANDLE_INDEX;
|
||||
#else
|
||||
m_nEntIndex = 0;
|
||||
#endif
|
||||
m_flScale = 1.f;
|
||||
m_nAttachmentIndex = 0;
|
||||
m_nSurfaceProp = 0;
|
||||
|
||||
m_flMagnitude = 0.0f;
|
||||
m_flRadius = 0.0f;
|
||||
|
||||
m_nMaterial = 0;
|
||||
m_nDamageType = 0;
|
||||
m_nHitBox = 0;
|
||||
|
||||
m_nColor = 0;
|
||||
|
||||
m_bCustomColors = false;
|
||||
m_CustomColors.m_vecColor1.Init();
|
||||
m_CustomColors.m_vecColor2.Init();
|
||||
|
||||
m_bControlPoint1 = false;
|
||||
m_ControlPoint1.m_eParticleAttachment = PATTACH_ABSORIGIN;
|
||||
m_ControlPoint1.m_vecOffset.Init();
|
||||
}
|
||||
|
||||
int GetEffectNameIndex() { return m_iEffectName; }
|
||||
|
||||
#ifdef CLIENT_DLL
|
||||
IClientRenderable *GetRenderable() const;
|
||||
C_BaseEntity *GetEntity() const;
|
||||
int entindex() const;
|
||||
#endif
|
||||
|
||||
private:
|
||||
|
||||
#ifdef CLIENT_DLL
|
||||
DECLARE_CLIENTCLASS_NOBASE()
|
||||
#else
|
||||
DECLARE_SERVERCLASS_NOBASE()
|
||||
#endif
|
||||
|
||||
int m_iEffectName; // Entry in the EffectDispatch network string table. The is automatically handled by DispatchEffect().
|
||||
};
|
||||
|
||||
|
||||
#define MAX_EFFECT_DISPATCH_STRING_BITS 10
|
||||
#define MAX_EFFECT_DISPATCH_STRINGS ( 1 << MAX_EFFECT_DISPATCH_STRING_BITS )
|
||||
|
||||
#ifdef CLIENT_DLL
|
||||
bool SuppressingParticleEffects();
|
||||
void SuppressParticleEffects( bool bSuppress );
|
||||
#endif
|
||||
|
||||
#endif // EFFECT_DISPATCH_DATA_H
|
||||
Reference in New Issue
Block a user