#ifndef __CAR_H
#define __CAR_H

#define PI 3.141592
#define ANGLESTEP 5
#define TRAINEESIZE 8192
#include "shmdata.h"

class Car
	{
	private :
		SDL_Surface *Surface_car[360];
		SDL_Rect rect;
		bool carimage;
		bool showbar;
		bool camera[CAMVECT];
		struct shmdata *SData;
		int shmid;
		int angstep;
		
		int trainee[TRAINEESIZE][2];
		int traineepos;
		int traineesize;
	public :
		Car();
		void updateCar(SDL_Surface* screen);
		void loadImage(char *imagefile);		
		void initShm();
		
		int incTraineeSize(int);
		void incAngle();
		void decAngle();
		void incSpeed();
		void decSpeed();
		int incAngleStep(int);
		bool APToggle();
		bool APState() const;
		bool neurToggle();
		bool neurState() const;
		int  getSpeed() const;
		int  getAngle() const;
		bool showBar(int i);
		bool* getVect();
		bool* getView();
		void reset();
		void turn180();
		void showCamera(SDL_Surface* screen);
		void showTrainee(SDL_Surface* screen);
		void loadState();
		void saveState();
		void harakiri();
		void setDelay(int del);
		void showNetwork(bool a);
		bool showNetworkState();
	};

#endif
