mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2025-01-09 02:31:01 +00:00
81 lines
1.5 KiB
C++
81 lines
1.5 KiB
C++
#pragma once
|
|
|
|
//
|
|
// P_CEILING
|
|
//
|
|
|
|
// [RH] Changed these
|
|
class DCeiling : public DMovingCeiling
|
|
{
|
|
DECLARE_CLASS (DCeiling, DMovingCeiling)
|
|
public:
|
|
enum ECeiling
|
|
{
|
|
ceilLowerByValue,
|
|
ceilRaiseByValue,
|
|
ceilMoveToValue,
|
|
ceilLowerToHighestFloor,
|
|
ceilLowerInstant,
|
|
ceilRaiseInstant,
|
|
ceilCrushAndRaise,
|
|
ceilLowerAndCrush,
|
|
ceil_placeholder,
|
|
ceilCrushRaiseAndStay,
|
|
ceilRaiseToNearest,
|
|
ceilLowerToLowest,
|
|
ceilLowerToFloor,
|
|
|
|
// The following are only used by Generic_Ceiling
|
|
ceilRaiseToHighest,
|
|
ceilLowerToHighest,
|
|
ceilRaiseToLowest,
|
|
ceilLowerToNearest,
|
|
ceilRaiseToHighestFloor,
|
|
ceilRaiseToFloor,
|
|
ceilRaiseByTexture,
|
|
ceilLowerByTexture,
|
|
|
|
genCeilingChg0,
|
|
genCeilingChgT,
|
|
genCeilingChg
|
|
};
|
|
|
|
enum class ECrushMode
|
|
{
|
|
crushDoom = 0,
|
|
crushHexen = 1,
|
|
crushSlowdown = 2
|
|
};
|
|
|
|
|
|
void Construct(sector_t *sec);
|
|
void Construct(sector_t *sec, double speed1, double speed2, int silent);
|
|
|
|
void Serialize(FSerializer &arc);
|
|
void Tick ();
|
|
|
|
protected:
|
|
ECeiling m_Type;
|
|
double m_BottomHeight;
|
|
double m_TopHeight;
|
|
double m_Speed;
|
|
double m_Speed1; // [RH] dnspeed of crushers
|
|
double m_Speed2; // [RH] upspeed of crushers
|
|
int m_Crush;
|
|
ECrushMode m_CrushMode;
|
|
int m_Silent;
|
|
int m_Direction; // 1 = up, 0 = waiting, -1 = down
|
|
|
|
// [RH] Need these for BOOM-ish transferring ceilings
|
|
FTextureID m_Texture;
|
|
secspecial_t m_NewSpecial{};
|
|
|
|
// ID
|
|
int m_Tag;
|
|
int m_OldDirection;
|
|
|
|
void PlayCeilingSound ();
|
|
|
|
friend struct FLevelLocals;
|
|
};
|
|
|