119 lines
2.9 KiB
C
119 lines
2.9 KiB
C
/*
|
|
* fileHandler.c
|
|
*
|
|
* Created on: 20 juin 2018
|
|
* Author: isen
|
|
*
|
|
* Contient la gestion des fichier et notament la récupération d'un niveau
|
|
*/
|
|
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include "SDL2/SDL.h"
|
|
#include "SDL2/SDL_image.h"
|
|
|
|
#include "fileHandler.h"
|
|
//#include "main.c"
|
|
|
|
#define BLOC_SIZE 34 // Taille d'un bloc (carré) en pixels
|
|
#define NB_BLOCS_LARGEUR 20
|
|
#define NB_BLOCS_HAUTEUR 20
|
|
#define LARGEUR_FENETRE BLOC_SIZE * NB_BLOCS_LARGEUR
|
|
#define HAUTEUR_FENETRE BLOC_SIZE * NB_BLOCS_HAUTEUR
|
|
/*
|
|
|
|
PLAYER * LoadLevel(ARENA_H_TILE *Head)
|
|
{
|
|
printf("Fonction Chargement d'un niveau\n");
|
|
|
|
if(Head == NULL)
|
|
{
|
|
printf("La liste est vide\n");
|
|
}
|
|
else
|
|
{
|
|
FILE* fichier = NULL;
|
|
char ligneFichier[NB_BLOCS_LARGEUR * NB_BLOCS_HAUTEUR + 1] = {0};
|
|
int i = 0, j = 0;
|
|
|
|
//Ouverture du fichier
|
|
fichier = fopen("level1.lvl", "r");
|
|
if (fichier == NULL)
|
|
return 0;
|
|
//Lecture du fichier
|
|
fgets(ligneFichier, NB_BLOCS_LARGEUR * NB_BLOCS_HAUTEUR + 1, fichier);
|
|
|
|
for (i = 0 ; i < NB_BLOCS_LARGEUR ; i++)
|
|
{
|
|
for (j = 0 ; j < NB_BLOCS_HAUTEUR ; j++)
|
|
{
|
|
switch (ligneFichier[(i * NB_BLOCS_LARGEUR) + j])
|
|
{
|
|
case '0':
|
|
//Herbe
|
|
ARENA_H_TILE->Type = 0;
|
|
break;
|
|
case '1':
|
|
//Pierre
|
|
ARENA_H_TILE->Type = 1;
|
|
break;
|
|
case '2':
|
|
//Arbre
|
|
ARENA_H_TILE->Type = 2;
|
|
break;
|
|
case '3':
|
|
//Rivière
|
|
ARENA_H_TILE->Type = 3;
|
|
break;
|
|
}
|
|
Head = Head->suiv;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
*/
|
|
//Fonction a réadapter avec la liste chainée Arene
|
|
|
|
int chargerNiveau(int niveau[][NB_BLOCS_HAUTEUR])
|
|
{
|
|
FILE* fichier = NULL;
|
|
char ligneFichier[NB_BLOCS_LARGEUR * NB_BLOCS_HAUTEUR + 1] = {0};
|
|
int i = 0, j = 0;
|
|
|
|
printf("Chargement du fichier\n");
|
|
fichier = fopen("level1.lvl", "r");
|
|
if (fichier == NULL)
|
|
return 0;
|
|
|
|
fgets(ligneFichier, NB_BLOCS_LARGEUR * NB_BLOCS_HAUTEUR + 1, fichier);
|
|
|
|
for (i = 0 ; i < NB_BLOCS_LARGEUR ; i++)
|
|
{
|
|
for (j = 0 ; j < NB_BLOCS_HAUTEUR ; j++)
|
|
{
|
|
//printf("j= %i \n",j);
|
|
switch (ligneFichier[(i * NB_BLOCS_LARGEUR) + j])
|
|
{
|
|
case '0':
|
|
niveau[j][i] = 0;
|
|
//printf("herbe\n");
|
|
break;
|
|
case '1':
|
|
niveau[j][i] = 1;
|
|
// printf("caillou\n");
|
|
break;
|
|
case '2':
|
|
niveau[j][i] = 2;
|
|
//printf("arbre\n");
|
|
break;
|
|
}
|
|
}
|
|
//printf("Ligne\n");
|
|
}
|
|
|
|
fclose(fichier);
|
|
return 1;
|
|
}
|
|
|