struct IView { struct SShakeParams { Ang3 shakeAngle; Vec3 shakeShift; float sustainDuration; float fadeInDuration; float fadeOutDuration; float frequency; float randomness; int shakeID; bool bFlipVec; bool bUpdateOnly; bool bGroundOnly; bool bPermanent; bool isSmooth; }; };
IViewSystem.h
struct SShakeParams { Ang3 shakeAngle; Vec3 shakeShift; float sustainDuration; float fadeInDuration; float fadeOutDuration; float frequency; float randomness; int shakeID; bool bFlipVec; bool bUpdateOnly; bool bGroundOnly; bool bPermanent; bool isSmooth; };
IViewSystem.h
bool bFlipVec;
bool bGroundOnly;
bool bPermanent;
if true, sustainDuration is ignored
bool bUpdateOnly;
float fadeInDuration;
float fadeOutDuration;
float frequency;
bool isSmooth;
float randomness;
Ang3 shakeAngle;
int shakeID;
Vec3 shakeShift;
float sustainDuration;
SShakeParams();
virtual ~IView();
virtual const SViewParams * GetCurrentParams() = 0;
virtual EntityId GetLinkedId() = 0;
virtual void LinkTo(IEntity * follow) = 0;
virtual void LinkTo(IGameObject * follow) = 0;
virtual void Release() = 0;
virtual void ResetBlending() = 0;
virtual void ResetShaking() = 0;
virtual void SetActive(bool const bActive) = 0;
virtual void SetCurrentParams(SViewParams & params) = 0;
virtual void SetFrameAdditiveCameraAngles(const Ang3& addFrameAngles) = 0;
virtual void SetScale(const float scale) = 0;
virtual void SetViewShake(Ang3 shakeAngle, Vec3 shakeShift, float duration, float frequency, float randomness, int shakeID, bool bFlipVec = true, bool bUpdateOnly = false, bool bGroundOnly = false) = 0;
virtual void SetViewShakeEx(const SShakeParams& params) = 0;
virtual void SetZoomedScale(const float scale) = 0;
virtual void StopShake(int shakeID) = 0;
virtual void Update(float frameTime, bool isActive) = 0;