Initial commit.
This commit is contained in:
108
codemp/renderer/tr_worldeffects.h
Normal file
108
codemp/renderer/tr_worldeffects.h
Normal file
@@ -0,0 +1,108 @@
|
||||
#if defined (_MSC_VER) && (_MSC_VER >= 1020)
|
||||
#pragma once
|
||||
#endif
|
||||
#if !defined __TR_WORLDEFFECTS_H
|
||||
#define __TR_WORLDEFFECTS_H
|
||||
|
||||
class CWorldEffectsSystem;
|
||||
|
||||
|
||||
|
||||
#define PARTICLE_FLAG_RENDER 0x00000001
|
||||
|
||||
struct SParticle
|
||||
{
|
||||
vec3_t pos;
|
||||
vec3_t velocity;
|
||||
unsigned flags;
|
||||
};
|
||||
|
||||
|
||||
|
||||
class CWorldEffect
|
||||
{
|
||||
protected:
|
||||
CWorldEffect *mNext, *mSlave, *mOwner;
|
||||
bool mEnabled, mIsSlave;
|
||||
|
||||
public:
|
||||
enum
|
||||
{
|
||||
WORLDEFFECT_ENABLED = 0,
|
||||
WORLDEFFECT_PARTICLES,
|
||||
WORLDEFFECT_PARTICLE_COUNT,
|
||||
|
||||
WORLDEFFECT_END
|
||||
};
|
||||
|
||||
public:
|
||||
CWorldEffect(CWorldEffect *owner = 0);
|
||||
virtual ~CWorldEffect(void);
|
||||
|
||||
void SetNext(CWorldEffect *next) { mNext = next; }
|
||||
CWorldEffect *GetNext(void) { return mNext; }
|
||||
void SetSlave(CWorldEffect *slave) { mSlave = slave; }
|
||||
CWorldEffect *GetSlave(void) { return mSlave; }
|
||||
void AddSlave(CWorldEffect *slave);
|
||||
|
||||
void SetIsSlave(bool isSlave) { mIsSlave = isSlave; }
|
||||
void SetOwner(CWorldEffect *owner) { mOwner = owner; }
|
||||
|
||||
virtual bool Command(const char *command);
|
||||
|
||||
virtual void ParmUpdate(CWorldEffectsSystem *system, int which);
|
||||
virtual void ParmUpdate(CWorldEffect *effect, int which);
|
||||
virtual void SetVariable(int which, bool newValue, bool doSlave = false);
|
||||
virtual void SetVariable(int which, float newValue, bool doSlave = false);
|
||||
virtual void SetVariable(int which, int newValue, bool doSlave = false);
|
||||
virtual void SetVariable(int which, vec3_t newValue, bool doSlave = false);
|
||||
|
||||
virtual int GetIntVariable(int which) { return 0; }
|
||||
virtual SParticle *GetParticleVariable(int which) { return 0; }
|
||||
|
||||
virtual void Update(CWorldEffectsSystem *system, float elapseTime);
|
||||
virtual void Render(CWorldEffectsSystem *system);
|
||||
};
|
||||
|
||||
|
||||
|
||||
class CWorldEffectsSystem
|
||||
{
|
||||
protected:
|
||||
CWorldEffect *mList, *mLast;
|
||||
|
||||
public:
|
||||
CWorldEffectsSystem(void);
|
||||
virtual ~CWorldEffectsSystem(void);
|
||||
|
||||
void AddWorldEffect(CWorldEffect *effect);
|
||||
|
||||
virtual int GetIntVariable(int which) { return 0; }
|
||||
virtual SParticle *GetParticleVariable(int which) { return 0; }
|
||||
virtual float GetFloatVariable(int which) { return 0.0; }
|
||||
virtual float *GetVecVariable(int which) { return 0; }
|
||||
|
||||
virtual bool Command(const char *command);
|
||||
|
||||
virtual void Update(float elapseTime);
|
||||
virtual void ParmUpdate(int which);
|
||||
virtual void Render(void);
|
||||
};
|
||||
|
||||
|
||||
void R_InitWorldEffects(void);
|
||||
void R_ShutdownWorldEffects(void);
|
||||
void RB_RenderWorldEffects(void);
|
||||
|
||||
void R_WorldEffectCommand(const char *command);
|
||||
void R_WorldEffect_f(void);
|
||||
|
||||
bool R_GetWindVector(vec3_t windVector);
|
||||
bool R_GetWindSpeed(float &windSpeed);
|
||||
|
||||
bool R_IsRaining();
|
||||
//bool R_IsSnowing();
|
||||
bool R_IsPuffing();
|
||||
void R_AddWeatherZone(vec3_t mins, vec3_t maxs);
|
||||
|
||||
#endif // __TR_WORLDEFFECTS_H
|
||||
Reference in New Issue
Block a user