#ifndef SPRAVCA_H
#define SPRAVCA_H
#include <allegro.h>
#include "objekt.h"
#include "nepriatelia.h"
#include "strela.h"
#include "ponorka.h"
#include "vybuch.h"

class Spravca{
  private:
  Objekt *zacNepr1;  //toto je zoznam nepriatelov typu 1
  Objekt *konNepr1;
  Objekt *zacVybuch1;  //toto je zoznam nepriatelov typu 1
  Objekt *konVybuch1;
  Objekt *zacStrela1;  //toto je zoznam torped
  Objekt *konStrela1;
  Objekt *zacStrela2;  //toto je zoznam navnad
  Objekt *konStrela2;
  Objekt *zacStrela3;  //toto je zoznam nepriatelskych torped
  Objekt *konStrela3;
  Objekt *zacStrela4;  //toto je zoznam gulometu
  Objekt *konStrela4;
  int ci_zvuk;
  public:
  Ponorka Chuck;
  BITMAP *screen_n;
  SAMPLE *z_DeadNepr1;
  SAMPLE *vybuch;
  Spravca();  //konstruktor a destruktor
  ~Spravca();
  
  void SetKonVybuch1(Objekt *p){konVybuch1=p;}  //toto snad pochopite
  void SetZacVybuch1(Objekt *p){zacVybuch1=p;}
  Objekt* GetZacVybuch1(){return zacVybuch1;}
  Objekt* GetKonVybuch1(){return konVybuch1;}
  
  void SetKonNepr1(Objekt *p){konNepr1=p;}  //toto snad pochopite
  void SetZacNepr1(Objekt *p){zacNepr1=p;}
  Objekt* GetZacNepr1(){return zacNepr1;}
  Objekt* GetKonNepr1(){return konNepr1;}
  
  void SetKonStrela1(Objekt *p){konStrela1=p;}  //toto snad pochopite
  void SetZacStrela1(Objekt *p){zacStrela1=p;}
  Objekt* GetZacStrela1(){return zacStrela1;}
  Objekt* GetKonStrela1(){return konStrela1;}
  
  void SetKonStrela2(Objekt *p){konStrela2=p;}  //toto snad pochopite
  void SetZacStrela2(Objekt *p){zacStrela2=p;}
  Objekt* GetZacStrela2(){return zacStrela2;}
  Objekt* GetKonStrela2(){return konStrela2;}
  
  void SetKonStrela3(Objekt *p){konStrela3=p;}  //toto snad pochopite
  void SetZacStrela3(Objekt *p){zacStrela3=p;}
  Objekt* GetZacStrela3(){return zacStrela3;}
  Objekt* GetKonStrela3(){return konStrela3;}
  
  void SetKonStrela4(Objekt *p){konStrela4=p;}  //toto snad pochopite
  void SetZacStrela4(Objekt *p){zacStrela4=p;}
  Objekt* GetZacStrela4(){return zacStrela4;}
  Objekt* GetKonStrela4(){return konStrela4;}
  
  SAMPLE* GetZ_DeadNepr1(){return z_DeadNepr1;}
  void SetZ_DeadNepr1(SAMPLE *smp){z_DeadNepr1 = smp;}
  
  SAMPLE* GetVybuch(){return vybuch;}
  void SetVybuch(SAMPLE *smp){vybuch = smp;}
  
  Objekt GetChuck(){return Chuck;}
  
  void Pridaj(int co, double px, double py, double speed, double maxspeed, double uhol, int health, int max_health, double otacanie, int vybuch); //oteestovana funkcia
  void Uber(int co, Objekt *ktory);  //mala by fungovat
  void Krok();
  void Najblizsi(Objekt *co,Objekt *zac,double &min_x,double &min_y,double &vzdial); //co = od ktoreho objektu, zac = zaciatok zoznamu objketov od ktorych vzdialensot chcem urcit
  int Vyber_smer(double px, double py, double ciel_x, double ciel_y, double uhol, double otacanie);
};

#endif

