mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-12-13 06:01:25 +00:00
115 lines
2.4 KiB
C++
115 lines
2.4 KiB
C++
#pragma once
|
|
|
|
class DLighting : public DSectorEffect
|
|
{
|
|
DECLARE_CLASS(DLighting, DSectorEffect)
|
|
public:
|
|
static const int DEFAULT_STAT = STAT_LIGHT;
|
|
};
|
|
|
|
class DFireFlicker : public DLighting
|
|
{
|
|
DECLARE_CLASS(DFireFlicker, DLighting)
|
|
public:
|
|
void Construct(sector_t *sector);
|
|
void Construct(sector_t *sector, int upper, int lower);
|
|
void Serialize(FSerializer &arc);
|
|
void Tick();
|
|
protected:
|
|
int m_Count;
|
|
int m_MaxLight;
|
|
int m_MinLight;
|
|
};
|
|
|
|
class DFlicker : public DLighting
|
|
{
|
|
DECLARE_CLASS(DFlicker, DLighting)
|
|
public:
|
|
void Construct(sector_t *sector, int upper, int lower);
|
|
void Serialize(FSerializer &arc);
|
|
void Tick();
|
|
protected:
|
|
int m_Count;
|
|
int m_MaxLight;
|
|
int m_MinLight;
|
|
};
|
|
|
|
class DLightFlash : public DLighting
|
|
{
|
|
DECLARE_CLASS(DLightFlash, DLighting)
|
|
public:
|
|
void Construct(sector_t *sector);
|
|
void Construct(sector_t *sector, int min, int max);
|
|
void Serialize(FSerializer &arc);
|
|
void Tick();
|
|
protected:
|
|
int m_Count;
|
|
int m_MaxLight;
|
|
int m_MinLight;
|
|
int m_MaxTime;
|
|
int m_MinTime;
|
|
};
|
|
|
|
class DStrobe : public DLighting
|
|
{
|
|
DECLARE_CLASS(DStrobe, DLighting)
|
|
public:
|
|
void Construct(sector_t *sector, int utics, int ltics, bool inSync);
|
|
void Construct(sector_t *sector, int upper, int lower, int utics, int ltics);
|
|
void Serialize(FSerializer &arc);
|
|
void Tick();
|
|
protected:
|
|
int m_Count;
|
|
int m_MinLight;
|
|
int m_MaxLight;
|
|
int m_DarkTime;
|
|
int m_BrightTime;
|
|
};
|
|
|
|
class DGlow : public DLighting
|
|
{
|
|
DECLARE_CLASS(DGlow, DLighting)
|
|
public:
|
|
void Construct(sector_t *sector);
|
|
void Serialize(FSerializer &arc);
|
|
void Tick();
|
|
protected:
|
|
int m_MinLight;
|
|
int m_MaxLight;
|
|
int m_Direction;
|
|
};
|
|
|
|
// [RH] Glow from Light_Glow and Light_Fade specials
|
|
class DGlow2 : public DLighting
|
|
{
|
|
DECLARE_CLASS(DGlow2, DLighting)
|
|
public:
|
|
void Construct(sector_t *sector, int start, int end, int tics, bool oneshot);
|
|
void Serialize(FSerializer &arc);
|
|
void Tick();
|
|
protected:
|
|
int m_Start;
|
|
int m_End;
|
|
int m_MaxTics;
|
|
int m_Tics;
|
|
bool m_OneShot;
|
|
};
|
|
|
|
// [RH] Phased light thinker
|
|
class DPhased : public DLighting
|
|
{
|
|
DECLARE_CLASS(DPhased, DLighting)
|
|
public:
|
|
void Construct(sector_t *sector, int baselevel = 0, int phase = 0);
|
|
// These are for internal use only but the Create template needs access to them.
|
|
void Construct();
|
|
void Propagate();
|
|
|
|
void Serialize(FSerializer &arc);
|
|
void Tick();
|
|
protected:
|
|
uint8_t m_BaseLevel;
|
|
uint8_t m_Phase;
|
|
private:
|
|
int PhaseHelper(sector_t *sector, int index, int light, sector_t *prev);
|
|
};
|