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

#define canto_esquerdo 2
#define canto_direito  1
#define altura_chao 400

extern unsigned int sprite_jogador[6];//Vetor onde serão salvos as sprites do player
extern int jogador_animacao;//Salva a animacao que o jogador está
extern int jogador_sprite_pula;//armazena a posição do vetor de onde está a sprite de pular
extern int jogador_sprite_abaixa;//armazena a posição do vetor onde está a sprite de abaixar
extern int jogador_sprite_parado;//armazena a posição do vetor onde está a sprite de ficar parado
extern int jogador_sprite_dormindo;//...
extern int jogador_pos_x;
extern int jogador_pos_y;
extern int jogador_tamanho_x;
extern int jogador_tamanho_y;
extern int jogador_aceleracao_x;//velocidade horizontal
extern int jogador_aceleracao_y;//velocidade vertical
extern int jogador_pulo_cnt;//conta o tempo que o player fica no ar
extern int jogador_move_direita_inicio;//armazena onde inicia as sprites do player andando
extern int jogador_move_direita_fim;//armazena onde termina as sprites do player andando
extern int jogador_move_esquerda_inicio;//armazena onde inicia as sprites do player andando
extern int jogador_move_esquerda_fim;//armazena onde termina as sprites do player andando

int move_jogador(){//pronto, não testado
	int situacao=0;	
	if(jogador_pos_x+jogador_aceleracao_x<=0){//Player colidiu com o fim do canto esquerdo
		situacao=canto_esquerdo;
		jogador_pos_x=799-jogador_tamanho_x;//seta nova posição do player
	}else if(jogador_pos_x+jogador_aceleracao_x>=800){//Player colidiu com o fim do canto direito
		situacao=canto_direito;
		jogador_pos_x=1;//seta nova posição do player
	}else{//movimenta o player
		jogador_pos_x+=jogador_aceleracao_x;//seta nova posicao do player
		jogador_pos_y+=jogador_aceleracao_y;
	}
	return situacao;
}

bool personagem_pula(){
	bool pulou=false;
	C2D2_Botao *teclas = C2D2_PegaTeclas();
	if(teclas[C2D2_CIMA].pressionado || teclas[C2D2_W].pressionado){
		jogador_pulo_cnt=15;// tempo que o jogador vai ficar indo para cima
		pulou=true;//baseado no código do pause.cpp

	}
	return pulou;
}
int animacao_atual=0;
int pos_anim_atual=0;
int cnt_mov=0;

void jogador_processa_teclado(){//Pega tecla e move o jogador

	C2D2_Botao *teclas = C2D2_PegaTeclas();
	jogador_aceleracao_y=0;
	if(teclas[C2D2_D].ativo || teclas[C2D2_DIREITA].ativo){
		if(jogador_animacao<jogador_move_direita_inicio || jogador_animacao>jogador_move_direita_fim){
			jogador_animacao=jogador_move_direita_inicio;
			cnt_mov=10;
		}else if(cnt_mov)cnt_mov--;
		else{
			if(jogador_animacao==jogador_move_direita_fim)
				jogador_animacao=jogador_move_direita_inicio;
			else jogador_animacao++;
			cnt_mov=10;
		}
		jogador_aceleracao_x=2;
	}else if(teclas[C2D2_A].ativo || teclas[C2D2_ESQUERDA].ativo){
		if(jogador_animacao<jogador_move_esquerda_inicio || jogador_animacao>jogador_move_esquerda_fim){
			jogador_animacao=jogador_move_esquerda_inicio;
			cnt_mov=10;
		}else if(cnt_mov)cnt_mov--;
		else{
			if(jogador_animacao==jogador_move_esquerda_fim)
				jogador_animacao=jogador_move_esquerda_inicio;
			else jogador_animacao++;
			cnt_mov=10;
		}
		jogador_aceleracao_x=-2;
	}else if(teclas[C2D2_S].ativo || teclas[C2D2_BAIXO].ativo){
		jogador_animacao=9;
		jogador_aceleracao_x=0;
	}else{
		jogador_animacao=0;
		jogador_aceleracao_x=0;
	}
}