gzdoom/src/dsectoreffect.h

61 lines
1.1 KiB
C
Raw Normal View History

2016-03-01 15:47:10 +00:00
#ifndef __DSECTOREFFECT_H__
#define __DSECTOREFFECT_H__
#include "dthinker.h"
#include "r_defs.h"
class DSectorEffect : public DThinker
{
DECLARE_CLASS (DSectorEffect, DThinker)
public:
DSectorEffect (sector_t *sector);
2016-09-19 13:07:53 +00:00
void Serialize(FSerializer &arc);
void OnDestroy() override;
2016-03-01 15:47:10 +00:00
sector_t *GetSector() const { return m_Sector; }
sector_t *m_Sector;
protected:
DSectorEffect();
2016-03-01 15:47:10 +00:00
};
class DMover : public DSectorEffect
{
DECLARE_ABSTRACT_CLASS (DMover, DSectorEffect)
2016-03-01 15:47:10 +00:00
HAS_OBJECT_POINTERS
protected:
DMover (sector_t *sector);
TObjPtr<DInterpolation*> interpolation;
public:
void StopInterpolation(bool force = false);
2016-03-01 15:47:10 +00:00
protected:
DMover () {}
2016-09-19 13:07:53 +00:00
void Serialize(FSerializer &arc);
void OnDestroy() override;
2016-03-01 15:47:10 +00:00
};
class DMovingFloor : public DMover
{
DECLARE_ABSTRACT_CLASS (DMovingFloor, DMover)
2016-03-01 15:47:10 +00:00
protected:
DMovingFloor (sector_t *sector);
DMovingFloor() {}
2016-03-01 15:47:10 +00:00
};
class DMovingCeiling : public DMover
{
DECLARE_ABSTRACT_CLASS (DMovingCeiling, DMover)
2016-03-01 15:47:10 +00:00
protected:
DMovingCeiling (sector_t *sector, bool interpolate = true);
DMovingCeiling () {}
2016-03-01 15:47:10 +00:00
};
#endif //__DSECTOREFFECT_H__