// cGame.h
// 2/28/04
// Forrest Briggs
// cGame stores the world, handles user input and manages
// setting up opengl

#ifndef cgame_h
#define cgame_h

#include "ForwardDeclarations.h"
#include "OGLPlatformSpecific.h"
#include "cWorld.h"
#include "cTimer.h"

#include <iostream>
#include <String>
using namespace std;

class cGame
{   
public:
    cGame(); // do nothing
    
    // since we use the game as a global variable and objects 
    // are constructed that require opengl already to be initialized,
    // delay allocating the world until we call init.
    void init(); 
    
    void display(void);
    void idle();
    void keyboard(unsigned char key, int x, int y);
    void mouseClick(int button, int state, int x, int y); 
    void mouseMove(int x, int y);
    
    int screenWidth_, screenHeight_;
    int lastX_, lastY_;
    
    cWorld *world_;
    cTimer timer_;
};

#endif // end define cgame_h
