#ifndef _GAME_STATE_TRANSITIONS_H_ #define _GAME_STATE_TRANSITIONS_H_ #include #include #include "GameState.h" class TransitionBase: public GameState, public JGuiListener { public: TransitionBase(GameApp* parent, GameState* _from, GameState* _to, float duration); ~TransitionBase(); virtual void Start(); virtual void End(); virtual bool Finished() { return (mElapsed >= mDuration); } ; virtual void Update(float dt); virtual void Render() = 0; virtual void ButtonPressed(int controllerId, int controlId); float mElapsed; float mDuration; GameState* from; GameState* to; bool bAnimationOnly; //Does not call start or end on subordinates. }; class TransitionFade: public TransitionBase { public: TransitionFade(GameApp* p, GameState* f, GameState* t, float dur, bool reversed); virtual void Render(); bool mReversed; }; #endif