/*========================================================================= gstate.h Author: PKG Created: Project: PRLSR Purpose: Copyright (c) 2000 Climax Development Ltd ===========================================================================*/ #ifndef __SYSTEM_GSTATE_H__ #define __SYSTEM_GSTATE_H__ /*****************************************************************************/ class CScene { public: CScene() {;} virtual ~CScene() {;} virtual void init()=0; virtual void shutdown()=0; virtual void render()=0; virtual void think(int _frames)=0; virtual int readyToShutdown()=0; virtual char *getSceneName()=0; protected: }; /*****************************************************************************/ class GameState { public: static void initialise(); static void think(); static void render(); static void setNextScene( CScene *_nextScene ); inline static long int getFramesSinceLast() {return s_framesSinceLast;} static void setTimeSpeed( int speed ); static CScene * getCurrentScene(); static CScene * getPendingScene(); #if defined(__TERRITORY_USA__) || defined(__TERRITORY_JAP__) static int getOneSecondInFrames() {return 60;} #else static int getOneSecondInFrames() {return 50;} #endif private: // Try and instantiate a GameState and you will fail miserably :) GameState(); static void updateTimer(); static int s_framesSinceLast; }; #endif /* __SYSTEM_GSTATE_H__ */ /*=========================================================================== end */