mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-16 08:10:32 +02:00
101 lines
2.3 KiB
C++
101 lines
2.3 KiB
C++
#ifndef __HH_MISC_H
|
|
#define __HH_MISC_H
|
|
|
|
#define WALLWALK_TRANSITION_TIME 2510 // Time over which to fade
|
|
#define WALLWALK_HERM_S1 1.0f // Slope at start
|
|
#define WALLWALK_HERM_S2 -2.0f // Slope at end
|
|
|
|
class hhWallWalkable : public idStaticEntity {
|
|
CLASS_PROTOTYPE(hhWallWalkable);
|
|
|
|
public:
|
|
void Spawn( void );
|
|
void Save( idSaveGame *savefile ) const;
|
|
void Restore( idRestoreGame *savefile );
|
|
|
|
//rww - netcode
|
|
virtual void WriteToSnapshot( idBitMsgDelta &msg ) const;
|
|
virtual void ReadFromSnapshot( const idBitMsgDelta &msg );
|
|
virtual void ClientPredictionThink( void );
|
|
|
|
void SetWallWalkable(bool on);
|
|
virtual void Think();
|
|
|
|
protected:
|
|
void Event_Activate(idEntity *activator);
|
|
|
|
protected:
|
|
hhHermiteInterpolate<float> alphaOn; // Degree to which wallwalk is on
|
|
bool wallwalkOn;
|
|
bool flicker;
|
|
const idDeclSkin *onSkin;
|
|
const idDeclSkin *offSkin;
|
|
};
|
|
|
|
class hhFuncEmitter : public idStaticEntity {
|
|
CLASS_PROTOTYPE( hhFuncEmitter );
|
|
|
|
public:
|
|
void Spawn( void );
|
|
|
|
virtual void Hide();
|
|
virtual void Show();
|
|
|
|
void Save( idSaveGame *savefile ) const;
|
|
void Restore( idRestoreGame *savefile );
|
|
|
|
virtual void WriteToSnapshot( idBitMsgDelta &msg ) const;
|
|
virtual void ReadFromSnapshot( const idBitMsgDelta &msg );
|
|
|
|
protected:
|
|
virtual void Ticker();
|
|
|
|
protected:
|
|
void Event_Activate( idEntity *activator );
|
|
|
|
protected:
|
|
const idDeclParticle* particle;
|
|
int particleStartTime;
|
|
};
|
|
|
|
|
|
class hhPathEmitter : public hhFuncEmitter {
|
|
CLASS_PROTOTYPE( hhPathEmitter );
|
|
|
|
public:
|
|
void Spawn( void );
|
|
};
|
|
|
|
|
|
class hhDeathWraithEnergy : public hhPathEmitter {
|
|
CLASS_PROTOTYPE( hhDeathWraithEnergy );
|
|
|
|
public:
|
|
void Spawn( void );
|
|
void Save( idSaveGame *savefile ) const;
|
|
void Restore( idRestoreGame *savefile );
|
|
|
|
void SetPlayer(hhPlayer *player);
|
|
void SetDestination(const idVec3 &destination);
|
|
|
|
protected:
|
|
virtual void Ticker();
|
|
idVec3 CylindricalToCartesian(float radius, float theta, float z);
|
|
void CartesianToCylindrical(idVec3 &cartesian, float &radius, float &theta, float &z);
|
|
|
|
protected:
|
|
hhTCBSpline spline;
|
|
float startTime;
|
|
float duration;
|
|
float startRadius;
|
|
float endRadius;
|
|
float startTheta;
|
|
float endTheta;
|
|
float startZ;
|
|
float endZ;
|
|
idVec3 centerPosition;
|
|
idEntityPtr<hhPlayer> thePlayer;
|
|
};
|
|
|
|
#endif
|