123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- /*
- * File: game.c
- * Author: Arthur Brandao
- *
- * Created on 28 novembre 2018
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include "file.h"
- #include "game.h"
- /* --- Extern --- */
- Game game[MAXGAME];
- int nbGame = 0;
- /* --- Fonctions publiques --- */
- void ini_games(){
- for(int i = 0; i < MAXGAME; i++){
- game[i].active = false;
- }
- }
- JsonArray* list_map(){
- char** result;
- int nbResult;
- JsonArray* ja;
- //Initialisation json
- ja = malloc(sizeof(JsonArray));
- ini_array_encoder(ja);
- //Regarde les fichiers dans le dossier
- result = file_list(MAPDIR, &nbResult);
- for(int i = 0; i < nbResult; i++){
- add_array_string(ja, result[i]);
- free(result[i]);
- }
- free(result);
- return ja;
- }
- JsonArray* list_game(){
- JsonArray* ja;
- int compteur = 0, i = 0;
- //Si il n' y a aucune game
- if(nbGame == 0){
- return NULL;
- }
- //Initialisation json
- ja = malloc(sizeof(JsonArray));
- ini_array_encoder(ja);
- //Ajoute chaque game
- while(compteur < nbGame && i < MAXGAME){
- if(!game[i].active){
- i++;
- continue;
- }
- //Creation objet json
- JsonEncoder je;
- ini_encoder(&je);
- add_string(&je, "name", game[i].name);
- add_integer(&je, "nbPlayer", game[i].nbPlayer);
- add_string(&je, "map", game[i].mapName);
- //Ajout dans le tableau
- add_array_object(ja, &je);
- //Suppr encoder objet
- clean_json_encoder(&je);
- //Incremente
- i++;
- compteur++;
- }
- return ja;
- }
- int* map_size(char* map){
- int* res;
- res = malloc(sizeof(int) * 2);
- res[WIDTH] = 0;
- res[HEIGHT] = 1;
- //Parcours la 1er ligne pour compter le nombre de caractère
- while(*map != '\n' && *map != '\0'){
- res[WIDTH]++;
- map++;
- }
- if(*map == '\0'){
- return res;
- }
- //Compte les lignes
- map++;
- while(*map != '\0'){
- if(*map == '\n'){
- res[HEIGHT]++;
- }
- map++;
- }
- return res;
- }
- /**
- * Associe une map à une game
- * @param Game* La game à associé à la map
- * @param char* Le nom de la map
- */
- void get_map(Game*, char*);
|