/*****************************/
/* Inside The Machine - MKS  */
/*****************************/

//Includes
#ifndef _LEVELS_H
#define _LEVELS_H

//Inclusion des maps
#include "Engine.h"
#include <string>

//Defines
#define LEV_LEVEL_INTRO       0
#define LEV_LEVEL1            1
#define LEV_LEVEL2            2
#define LEV_LEVEL3            3
#define LEV_LEVEL4            4

//Structure Level
struct sLevel
{
   //Paramètres de base de la map
   u8 id;                    //ID du niveau
   std::string name;         //Nom de la Map
   
   //Données de la map réelle
   UL_IMAGE* chipset;        //Chipset du niveau
   UL_IMAGE* background;     //Background du niveau
   UL_MAP* map;              //Carte du niveau (layer 0)
   UL_MAP* map1;              //Carte du niveau (layer 1)
   
   //Données de la map de collision
   UL_IMAGE* chipset_coll;   //Chipset de collisions
   UL_MAP* map_coll;         //Carte de collision
   int lx, ly;               //Longueur et Largeur du niveau
   s32 vgx, vgy;             //Vecteur de gravité du niveau
   
   //Données des ID des pentes du niveau
   int pentesNbr;            //Nombre de pentes
   int v_pentes[32];         //Identifie les tiles pentues
   
   //Couleurs de fond
   int topColor, botColor;   //Couleur du haut et du bas de l'écran
   
   //Musique
   char music[128+1];        //Nom de fichier complet de la musique
   
	//Lumière
	//Un niveau Darkest est un niveau avec des ombres totales, les seuls sources de lumières sont
	//des lumières autour. Un niveau dark est un niveau sans effets particuliers de lumières.
	//Un niveau light est un niveau avec des lumières environnantes (jour)
	u8 light;                 //Type de lumières (0:Darkest, 1:Dark, 2:Light)
};

//Premier niveau : entrance
extern sLevel itmLevel_1;

//Deuxième niveau : inside
extern sLevel itmLevel_2;

//Troisième niveau : canal
extern sLevel itmLevel_3;

//Quatrième niveau : exit
extern sLevel itmLevel_4;

#endif
