//======== (C) Copyright 2002 Charles G. Cleveland All rights reserved. ========= // // The copyright to the contents herein is the property of Charles G. Cleveland. // The contents may be used and/or copied only with the written permission of // Charles G. Cleveland, or in accordance with the terms and conditions stipulated in // the agreement/contract under which the contents have been supplied. // // Purpose: // // $Workfile: $ // $Date: $ // //------------------------------------------------------------------------------- // $Log: $ //=============================================================================== #ifndef AVH_CLOAKABLE_H #define AVH_CLOAKABLE_H class AvHCloakable { public: AvHCloakable(); virtual bool GetCanCloak() const; virtual float GetCloakTime() const; virtual bool GetIsCloaked() const; bool GetIsPartiallyCloaked() const; virtual float GetUncloakTime() const; virtual float GetOpacity() const; void SetSpeeds(float inCurrentSpeed, float inMaxSpeed, float inMaxWalkSpeed); virtual void Cloak(bool inNoFade = false); virtual void Uncloak(bool inNoFade = false); virtual void ResetCloaking(); virtual void Update(); private: float GetTime() const; void Init(); float mCurrentSpeed; float mMaxSpeed; float mMaxWalkSpeed; float mTimeOfLastCloak; float mTimeOfLastUncloak; float mOpacity; float mTimeOfLastUpdate; }; #endif