#ifndef _H_AGK_TEMPLATE_
#define _H_AGK_TEMPLATE_

// Link to GDK libraries
#include "AGK.h"

#define DEVICE_WIDTH 1024
#define DEVICE_HEIGHT 768
#define DEVICE_POS_X 32
#define DEVICE_POS_Y 32
#define FULLSCREEN false

// used to make a more unique folder for the write path
#define COMPANY_NAME "My Company"

//Enum que se usara para las pantallas que tendra el juego
enum class gameState {highscoreScreen, gameScreen};

// Global values for the app
class app
{
	#ifdef _DEBUG
		bool debug_physics;
	#endif

	private:
		//Variable tipo gameState
		gameState gameScreen;

		//Objeto pelota
		class Ball* ball;

		//Objetos flippers
		class Flipper* left_flipper;
		class Flipper* right_flipper;

		//Funciones para controlar el comportamiento de las pantallas
		void updateHighscore();
		void updateGame();

		//Función para guardar configuraciones
		void createTable();

	public:
		// constructor
		app() { memset ( this, 0, sizeof(app)); }

		// main app functions - mike to experiment with a derived class for this..
		void Begin( void );
		int Loop( void );
		void End( void );
};

extern app App;

#endif

// Allow us to use the LoadImage function name
#ifdef LoadImage
 #undef LoadImage
#endif