text: #include "../../Common/Window.h"
  
  #include "../CSC8503Common/StateMachine.h"
  #include "../CSC8503Common/StateTransition.h"
  #include "../CSC8503Common/State.h"
  #include "../CSC8503Common/PushdownState.h"
  #include "../CSC8503Common/PushdownMachine.h"
  
  #include "../CSC8503Common/NavigationGrid.h"
  
  #include "TutorialGame.h"
  
  using namespace NCL;
  using namespace CSC8503;
  
  
  int main() {
  	Window*w = Window::CreateGameWindow("CSC8503 Game technology!", 1280, 720);
  
  	if (!w->HasInitialised()) {
  		return -1;
  	}	
  	srand(time(0));
  
  	w->ShowOSPointer(false);
  	w->LockMouseToWindow(true);
  
  	TutorialGame* g = new TutorialGame();
  	w->GetTimer()->GetTimeDeltaSeconds();
  
  	while (w->UpdateWindow() && !Window::GetKeyboard()->KeyDown(KeyboardKeys::ESCAPE) && !g->ExitButtonClicked) {
  		float dt = w->GetTimer()->GetTimeDeltaSeconds();
  		if (dt > 0.1f) {
  			std::cout << "Skipping large time delta" << std::endl;
  			continue;
  		}
  		if (Window::GetKeyboard()->KeyPressed(KeyboardKeys::PRIOR)) {
  			w->ShowConsole(true);
  		}
  		if (Window::GetKeyboard()->KeyPressed(KeyboardKeys::NEXT)) {
  			w->ShowConsole(false);
  		}
  
  		if (Window::GetKeyboard()->KeyPressed(KeyboardKeys::T)) {
  			w->SetWindowPosition(0, 0);
  		}
  
  		w->SetTitle("Gametech frame time:" + std::to_string(1000.0f * dt));
  
  		g->UpdateGame(dt);
  	}
  	Window::DestroyGameWindow();
  }