#include <stdio.h>
#include <stdlib.h>
#include "c2d2/chien2d2.h"
#include "c2d2/chien2d2primitivas.h"
#include "c2d2/chienaudio2.h"
#include "Log.h"

extern unsigned int fonte32;
extern unsigned int fonte64;
extern unsigned int botao_jogar;
extern unsigned int botao_ajuda;
extern unsigned int botao_creditos;
extern unsigned int botao_menu;
extern unsigned int botao_voltar;
extern unsigned int botao_sair;
extern unsigned int spmira;//Ponteiro do mouse
extern unsigned int titulo;
extern unsigned int pause;
extern unsigned int win;
extern unsigned int som_tocando8;

extern unsigned int  text_chao[4],text_parede[3],text_teto[3];//onde é armazenadp
extern unsigned int musicas[2];
extern unsigned int sons[2];//efeitos sonoros do jogo...
extern unsigned int objetos_sprites[6];
extern unsigned int jogador;
extern unsigned int textura_gato[12];

extern ArquivoLog *Log;

bool CarregaRecursos()
{
	int i=0;
	int tot_text_chao=4,tot_text_parede=3,tot_text_teto=3;
	text_chao[0]=C2D2_CarregaSpriteSet("./graficos/chao1.png",800,200);
	text_chao[1]=C2D2_CarregaSpriteSet("./graficos/chao2.png",800,200);
	text_chao[2]=C2D2_CarregaSpriteSet("./graficos/chao3.png",800,200);
	text_chao[3]=C2D2_CarregaSpriteSet("./graficos/chao4.png",800,200);
	text_parede[0]=C2D2_CarregaSpriteSet("./graficos/parede1.png",800,340);
	text_parede[1]=C2D2_CarregaSpriteSet("./graficos/parede2.png",800,340);
	text_parede[2]=C2D2_CarregaSpriteSet("./graficos/parede3.png",800,340);
    text_teto[0]=C2D2_CarregaSpriteSet("./graficos/teto1.png",800,60);
    text_teto[1]=C2D2_CarregaSpriteSet("./graficos/teto2.png",800,60);
    text_teto[2]=C2D2_CarregaSpriteSet("./graficos/teto3.png",800,60);
	objetos_sprites[0]=C2D2_CarregaSpriteSet("./graficos/pedra.png",37,26);
	objetos_sprites[1]=C2D2_CarregaSpriteSet("./graficos/gato.png",53,21);
	objetos_sprites[2]=C2D2_CarregaSpriteSet("./graficos/chave.png",48,16);
	objetos_sprites[3]=C2D2_CarregaSpriteSet("./graficos/porta.png",48,96);
	objetos_sprites[4]=C2D2_CarregaSpriteSet("./graficos/moeda.png",19,15);
	textura_gato[0]=C2D2_CarregaSpriteSet("./graficos/gato.png",53,21);
	textura_gato[1]=C2D2_CarregaSpriteSet("./graficos/FRAME1.png",53,21);
	textura_gato[2]=C2D2_CarregaSpriteSet("./graficos/FRAME2.png",53,21);
	textura_gato[3]=C2D2_CarregaSpriteSet("./graficos/FRAME3.png",53,21);
	textura_gato[4]=C2D2_CarregaSpriteSet("./graficos/FRAME4.png",53,21);
	textura_gato[5]=C2D2_CarregaSpriteSet("./graficos/FRAME5.png",53,21);
	textura_gato[6]=C2D2_CarregaSpriteSet("./graficos/FRAME6.png",53,21);
	textura_gato[7]=C2D2_CarregaSpriteSet("./graficos/FRAME7.png",53,21);
	textura_gato[8]=C2D2_CarregaSpriteSet("./graficos/FRAME8.png",53,21);
	textura_gato[9]=C2D2_CarregaSpriteSet("./graficos/FRAME9.png",53,21);
	textura_gato[10]=C2D2_CarregaSpriteSet("./graficos/FRAME10.png",53,21);
	textura_gato[11]=C2D2_CarregaSpriteSet("./graficos/FRAME11.png",53,21);
	jogador=C2D2_CarregaSpriteSet("./graficos/player.png",32,32);
	musicas[0]=CA2_CarregaMusica("./sons/musica.ogg");
	musicas[1]=CA2_CarregaMusica("./sons/jogo_musica.ogg");
	sons[0]=CA2_CarregaEfeito("./sons/leady_door.wav");
	sons[1]=CA2_CarregaEfeito("./sons/pegachave.wav");

	while(i<tot_text_chao){
		if(!text_chao[i]){
			LogInfo(Log, "Failed to load floor texture.");
			return -1;
		}
		i++;
	}for(i=0;i<tot_text_parede;i++){
		if(!text_parede[i]){
			LogInfo(Log, "Failed to load the wall texture.");
			return -1;
		}
	}for(i=0;i<tot_text_teto;i++){
		if(!text_teto[i]){
			LogInfo(Log, "Failed to load the ceiling texture.");
			return -1;
		}
	}

	//INJECT ABAIXO
    fonte32 = C2D2_CarregaFonte("./graficos/Leelawadee32.bmp", 32);
    if(fonte32==0)
    {
		LogInfo(Log, "Failed to load the font size 32.");
        return false;
    }
    C2D2_TrocaCorLimpezaTela(0,0,255);
    C2D2_LimpaTela();
    C2D2_DesenhaTexto(fonte32, 400, 284, "Loading resources, please wait.", C2D2_TEXTO_CENTRALIZADO);
	C2D2_Sincroniza(C2D2_FPS_PADRAO);
    fonte64 = C2D2_CarregaFonte("./graficos/CourierNew64.bmp", 64);
    if(fonte64==0)
    {
		LogInfo(Log, "Failed to load the font size 64.");
        return false;
    }
    botao_jogar = C2D2_CarregaSpriteSet("./graficos/botao_jogar.png", 200, 40);
    if(botao_jogar==0)
    {
		LogInfo(Log, "Failed to load the play button.");
        return false;
    }
	botao_ajuda = C2D2_CarregaSpriteSet("./graficos/botao_ajuda.png", 200, 40);
    if(botao_ajuda==0)
    {
		LogInfo(Log, "Failed to load the help button.");
        return false;
    }
	botao_menu = C2D2_CarregaSpriteSet("./graficos/botao_menu.png", 200, 40);
    if(botao_menu==0)
    {
		LogInfo(Log, "Failed to load the menu button.");
        return false;
    }
    botao_creditos = C2D2_CarregaSpriteSet("./graficos/botao_creditos.png", 200, 40);
    if(botao_creditos==0)
    {
		LogInfo(Log, "Failed to load the credit button.");
        return false;
    }
    botao_sair = C2D2_CarregaSpriteSet("./graficos/botao_sair.png", 200, 40);
    if(botao_sair==0)
    {
		LogInfo(Log, "Failed to load the quit button.");
        return false;
    }
    botao_voltar = C2D2_CarregaSpriteSet("./graficos/botao_voltar.png", 200, 40);
    if(botao_voltar==0)
    {
		LogInfo(Log, "Failed to load the back button.");
        return false;
    }
    spmira = C2D2_CarregaSpriteSet("./graficos/mouse.png", 12, 18);
    if(spmira==0)
    {
		LogInfo(Log, "Failed to load the mouse sprite");
        return false;
    }
    titulo = C2D2_CarregaSpriteSet("./graficos/titulo.png", 0, 0);
    if(titulo==0)
    {
		LogInfo(Log, "Failed to load the start screen.");
        return false;
    }
	win = C2D2_CarregaSpriteSet("./graficos/you_win.png", 0, 0);
    if(win==0)
    {
		LogInfo(Log, "Failed to load the victory screen.");
        return false;
    }
	pause = C2D2_CarregaSpriteSet("./graficos/pause.png", 0, 0);
    if(pause==0)
    {
		LogInfo(Log, "Failed to load the pause screen.");
        return false;
    }
	som_tocando8 = CA2_CarregaMusica("./sons/musica.ogg");
	if(som_tocando8 == 0){
		LogInfo(Log, "Failed to load sound 8.");
		return false;
	}
    return true;
}