AST/src/fileHandler.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 32 // 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;
}