//RenderJeu.h

int BoucleRenderJeu()
{
	SDL_Event event;
	Moteur.RajoutFondu(SDL_GetTicks(), SDL_GetTicks() + 1000, 0, 0, 0, 0, 0, 0, 0, 255);
	Uint32 AlphaPause, LastAlphaPause; 

	while (continuer && nbRender == RENDER_JEU)
	{
		while(SDL_PollEvent(&event))
		{
			switch(event.type)
			{
				case SDL_QUIT:
					continuer = false;
					break;
					
				case SDL_VIDEORESIZE:
					Moteur.ResizeWindow(event.resize.w, event.resize.h);
					break;

				case SDL_KEYDOWN:                    			
					if(event.key.keysym.sym == SDLK_ESCAPE) continuer = false;
					if(event.key.keysym.sym == SDLK_RIGHT) PersoPrincipal->ModifTouche(TOUCHE_DROITE, true);
					if(event.key.keysym.sym == SDLK_LEFT) PersoPrincipal->ModifTouche(TOUCHE_GAUCHE, true);
					if(event.key.keysym.sym == SDLK_UP) PersoPrincipal->ModifTouche(TOUCHE_HAUT, true);
					if(event.key.keysym.sym == SDLK_DOWN) PersoPrincipal->ModifTouche(TOUCHE_BAS, true);
					if(event.key.keysym.sym == SDLK_SPACE) PersoPrincipal->ModifTouche(TOUCHE_ATTAQUE, true);
					if(event.key.keysym.sym == SDLK_F1) PersoPrincipal->ModifTouche(TOUCHE_SORT_BOULE_FEU, true);
					break;

				case SDL_KEYUP:
					if(event.key.keysym.sym == SDLK_RIGHT) PersoPrincipal->ModifTouche(TOUCHE_DROITE, false);
					if(event.key.keysym.sym == SDLK_LEFT) PersoPrincipal->ModifTouche(TOUCHE_GAUCHE, false);
					if(event.key.keysym.sym == SDLK_UP) PersoPrincipal->ModifTouche(TOUCHE_HAUT, false);
					if(event.key.keysym.sym == SDLK_DOWN) PersoPrincipal->ModifTouche(TOUCHE_BAS, false);
					if(event.key.keysym.sym == SDLK_SPACE) PersoPrincipal->ModifTouche(TOUCHE_ATTAQUE, false);
					if(event.key.keysym.sym == SDLK_F1) PersoPrincipal->ModifTouche(TOUCHE_SORT_BOULE_FEU, false);
					if(event.key.keysym.sym == SDLK_p)
					{
						JeuEnPause = !JeuEnPause;
						AlphaPause = 0;
						LastAlphaPause = SDL_GetTicks();
					}
					break;
					
				default:
					break;
			}
		}

		Moteur.DebutDessin();

		Moteur.AfficheTexture(ImgArrierePlan, 0, 0, 800, 600, 255, 255, 255);
		Moteur.AfficheTexture(ImgMotifArrierePlan, 300, 300, 100, 100, 255, 255, 255);
		Map.RenderMap(PersoPrincipal->ReturnPosX(), PersoPrincipal->ReturnPosY());
		
		for(int i = 0; i < Personnages.size(); ++i)
		{
			Personnages[i]->DessinePerso();
			if(Personnages[i]->ReturnVie() <= 0)
			{
				Personnages.erase(Personnages.begin() + i);
				--i;
			}
		}
		
 		PersoPrincipal->DessinePerso();
		
		for(int i = 0; i < Sorts.size(); ++i)
		{
			while(i < Sorts.size() && !Sorts[i]->DessineSort(JeuEnPause)) Sorts.erase(Sorts.begin() + i);
		}
		
		if(JeuEnPause)
		{
		unsigned char cAlpha = AlphaPause <= 255 ? AlphaPause : 511 - AlphaPause;
        	while(LastAlphaPause + 6 < SDL_GetTicks())
			{
				++AlphaPause;
				LastAlphaPause += 6;
			}
        		if(AlphaPause > 510) AlphaPause = 0;
			Moteur.DessineTexte(FonteStandard, "Pause", 64, 268, 240, 0, 0, 0, cAlpha);
			
		}
		
		Interface.DessineInterface(PersoPrincipal->ReturnVie(), PersoPrincipal->ReturnVieMax(), PersoPrincipal->ReturnMana(), PersoPrincipal->ReturnManaMax());
		
		Moteur.DessineFPS();
		Moteur.FinDessin();
	
	}
}
