#include "Manada.h"
#include "Enemigo.h"

#include "SDL/SDL.h"

Manada::Manada()
{	
	CargarEnemigos();
}
	
Manada::~Manada()
{
	int numEnem = VectorPantalla.size();
	int numEnem2 = VectorTodos.size();
	for (int i=0; i<numEnem; i++)
	{
		delete VectorPantalla[0];
		VectorPantalla.erase(VectorPantalla.begin());		
	}
	for (int i=0; i<numEnem2; i++)
	{
		delete VectorTodos[0];
		VectorTodos.erase(VectorTodos.begin());
	}
}

void Manada::Dibujar(SDL_Surface * fondo)
{
	for (int i=0; i < VectorPantalla.size() ; i++)
	{
		VectorPantalla[i]->Dibujar(fondo);
	}	
}

void Manada::EliminarEnemigoEnPantalla(int i)
{
	delete VectorPantalla[i];
	vector<Enemigo*>::iterator lugar=VectorPantalla.begin();
	lugar+=i;
	VectorPantalla.erase(lugar);
}

void Manada::Actualizar(float time, Uint32 X)
{	
	printf("%d\n",VectorPantalla.size());
	if (VectorTodos.size()>0)
	{		
		if ((VectorTodos[0]->x)<=X)
		{
				VectorPantalla.push_back(new Enemigo("../data/txipi.bmp",550,VectorTodos[0]->y,VectorTodos[0]->speedX,VectorTodos[0]->speedY));
				VectorTodos.erase(VectorTodos.begin());
		}
	}
	for (int i=0; i < VectorPantalla.size() ; i++)
	{
		VectorPantalla[i]->Actualizar(time);
	}
	for (int i=0; i < VectorPantalla.size() ; i++)
	{
		int coordx=VectorPantalla[i]->getX()+VectorPantalla[i]->getW();
		if (coordx<=0)
		{
			EliminarEnemigoEnPantalla(i);			
		}
	}	
}

void Manada::CargarEnemigos()
{
	VectorTodos.push_back (new DatosEnemigo(100,100,-100,0,0));
	VectorTodos.push_back (new DatosEnemigo(150,200,-200,0,0));
	VectorTodos.push_back (new DatosEnemigo(200,300,-400,5,0));
	VectorTodos.push_back (new DatosEnemigo(250,300,-100,20,0));
}
