#include <stdio.h>
#include "randomiza.h"
#include "c2d2/chien2d2.h"

#define max_objetos 6
#define nenhum_objeto 0
#define pedra 1
#define gato  2
#define chave 3
#define porta 4
#define moeda 5

//Seleciona objetos Randomicos na tela
extern int objeto_e_chave;//marca qual objeto é uma chave
extern int objetos[6];//Possui três objetos ou menos, cada objeto irá armazenar um número que irá fazer referência a qual objeto está na tela
extern int objetos_posx[6];//Posição horizontal dos objetos
extern int objetos_posy[6];//Posição vertical dos objetos
extern int objetos_tamanho_x[6];//tamanho horizontal do objeto
extern int objetos_tamanho_y[6];//o tamanho vertical do objeto
extern unsigned int objetos_sprites[6];

bool evita_sobreposicao(int pos_atual);

//tenque testar se funciona
int seleciona_objeto_randomico(){//Retornaria qual objeto iria estar na tela e seleciona quais objetos serão eles
	int i=0;
	int sorteia_objeto=0;
	int qnt_objetos;
	qnt_objetos=randomiza(3,5);
	while(i<qnt_objetos){
		sorteia_objeto=randomiza(1,5);
		objetos[i]=sorteia_objeto-1;
		do{
			switch(sorteia_objeto){
				case pedra:
					objetos_posx[i]=randomiza(0,750);
					objetos_tamanho_x[i]=37;//tamanho suposto da horizontal da pedra
					objetos_tamanho_y[i]=26;//tamanho suposto da vertical da pedra
					objetos_posy[i]=400-objetos_tamanho_y[i];
					break;
				case gato:
					objetos_tamanho_x[i]=53;//tamanho suposto da horizontal da gato
					objetos_tamanho_y[i]=21;//tamanho suposto da vertical da gato
					objetos_posx[i]=800-objetos_tamanho_x[i];
					objetos_posy[i]=randomiza(100,400)-objetos_tamanho_y[i];
					break;
				case chave:
					objetos_tamanho_x[i]=48;//tamanho suposto da horizontal da telefone
					objetos_tamanho_y[i]=16;//tamanho suposto da vertical da telefone
					objetos_posx[i]=randomiza(0,750);
					objetos_posy[i]=400-objetos_tamanho_y[i];
					break;
				case porta:
					objetos_tamanho_x[i]=48;//tamanho suposto da horizontal da porta
					objetos_tamanho_y[i]=96;//tamanho suposto da vertical da porta
					objetos_posx[i]=randomiza(0,750);
					objetos_posy[i]=400-objetos_tamanho_y[i];
					break;
				case moeda:
					objetos_tamanho_x[i]=19;//tamanho suposto da horizontal da moeda
					objetos_tamanho_y[i]=15;//tamanho suposto da vertical da moeda
					objetos_posx[i]=randomiza(0,750);
					objetos_posy[i]=400-objetos_tamanho_y[i];
					break;
			}
		}while(evita_sobreposicao(i));
		i++;
	}while(i<max_objetos){//objetos que não estarão na tela terão seus valores zerados
		objetos[i]=nenhum_objeto;
		objetos_posx[i]=0;
		objetos_posy[i]=0;
		objetos_tamanho_x[i]=0;
		objetos_tamanho_y[i]=0;
		i++;
	}
	return qnt_objetos;
}

bool chave_ja_sorteada=true;
int setor_chave=0;
int setor=0;

bool evita_sobreposicao(int pos_atual){
	int i=0;
	bool colide=false;
	while(i<pos_atual){
		if(C2D2_ColidiuSprites(objetos_sprites[objetos[i]],0,objetos_posx[i],objetos_posy[i],objetos_sprites[objetos[pos_atual]],0,objetos_posx[pos_atual],objetos_posy[pos_atual]))colide=true;
		i++;
	}
	return colide;
}

void zera_objetos(){
	int i=0;
	while(i<6){
		objetos[i]=0;
		objetos_posx[i]=0;
		objetos_posy[i]=0;
		objetos_tamanho_x[i]=0;
		objetos_tamanho_y[i]=0;
		i++;
	}
}