#ifndef MAIN_H
#define MAIN_H
#include "SDL/SDL.h"
#include "SDL/SDL_opengl.h"
#include "SDL/SDL_mixer.h"
#include "SDL/SDL_image.h"
#include "SDL/SDL_ttf.h"
#include "math.h"
#include <vector>
#include <stdlib.h>

#include "spaceship.h"
#include "planet.h"
#include "bullet.h"
#include "particle.h"

#define SCREENWIDTH 640
#define SCREENHEIGHT 480
#define SCREENBPP 16

#define TIMESTEP (tmp - this->ticks)

#define ROTFREQ 1.0f
#define ACCELERATION 1000
#define MAXSPEED 200
#define DRAGFACTOR ACCELERATION / MAXSPEED

using namespace std;

void setSounds(Mix_Chunk *ts1, Mix_Chunk *ts2, Mix_Chunk *ss, Mix_Chunk *hs, Mix_Chunk *es);
void AImove(spaceship &self, spaceship &enemy, vector<planet*> planetlist, screen *scr);
void setupGL();
void startGame();
int imageToTexture(const char* path, GLuint *texture);
void process_events(vector<spaceship> &spaceshiplist);
void draw(vector<spaceship> &spaceshiplist, vector<planet*> &planetlist, particle particles[], GLuint particleTexture, screen *scr);
void handle_key_up(SDL_keysym *keysym, vector<spaceship> &spaceshiplist);
void handle_key_down(SDL_keysym *keysym, vector<spaceship> &spaceshiplist);
void quit_program(int code);
void setupTextures();
#endif /* MAIN_H */

