-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathload sauvegarde.c
128 lines (71 loc) · 3.46 KB
/
load sauvegarde.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
//
// Created by Admin on 27/05/2021.
//
#include "load sauvegarde.h"
void fonction_lecture_sauvegarde(save * sauvegarde){
int i , j=0 ;
FILE* fichier_sauvegarde=fopen("sauvegarde.jeu","r"); // ouverture de ficher de sauvegarde
if ( fichier_sauvegarde != NULL ){
char savemode [2] ,savepv [6], saveinventory [13],savegrid [201],saveCoo[11],saveorientation[6]; // declaration des differentes variable qui von saervire de memoire tampon
fgets(savegrid,201,fichier_sauvegarde);
fgets(saveCoo,11,fichier_sauvegarde);
fgets(savemode,2,fichier_sauvegarde);
fgets(savepv,6,fichier_sauvegarde);
fgets(saveinventory,13,fichier_sauvegarde); // 13 car il faux recupérer les 3 caractère de chaque missile
fgets(saveorientation,6,fichier_sauvegarde);
for (i=0 ; i < 200 ; i++){
sauvegarde->grid_save[i]= savegrid[i];
}
for ( i=0 ; i< 10 ; i++){
sauvegarde->Coo_save[i]= saveCoo[i] - 48 ; // -48 , on utilise la table ASCII, pour passer d'un caractère a un chiffre un suffit de faire -48
}
for (i=0 ; i<12 ; i+=3){
sauvegarde->inventory_save[j]= (saveinventory[i+1]-48)*10 +(saveinventory[i+2])-48 ;
j ++;
}
for ( i=0 ; i<5 ; i++){
sauvegarde->orientation_save[i]=saveorientation[i]-48;
sauvegarde->pv_save[i]=savepv[i]-48 ;
}
sauvegarde->mode_rep_save = savemode[0] -48; // charge le mode de eux de la précédante parti
}else{
printf ( " Erreure : le fichier sauvegarde.txt pas trouver \n ");
}
fclose(fichier_sauvegarde);
}
void fonction_load (save sauvegarde, Inventory * liste_missile,Grid * user_grid ,Grid * boat_grid, int * choix_mode_de_jeux){
int deux_case = 0 , cent_case =0; //// pour sauvegarder les pv des bateaux / pou sauvegarder les Coo des bateaux
int i;
load_inventory (liste_missile,sauvegarde); //sauvegarder le nombre de chaque missile
load_caracteristique_grid(boat_grid, sauvegarde,cent_case);// sauvegarde la grid de user
cent_case += 100; //besoin pour la fonction loaad_caracteristique qui utilise une matrice de 200 pour sauvegarder deux fois une tableau dans le même matrice
load_caracteristique_grid(user_grid, sauvegarde,cent_case); // sauvegard la grille des bateaux
*choix_mode_de_jeux = sauvegarde.mode_rep_save;
}
void load_inventory (Inventory *liste, save sauvegarde ){
liste->nb_missile_artillerie=sauvegarde.inventory_save[0] ;
liste->nb_missile_bombe=sauvegarde.inventory_save[1] ;
liste->nb_missile_default=sauvegarde.inventory_save[2] ;
liste->nb_missile_tactique=sauvegarde.inventory_save[3] ;
}
void load_caracteristique_grid (Grid * grid , save sauvegarde , int cent_case){
int i,j;
int dix_case=0;
for (j=0 ; j<10 ; j++ ){
for ( i= 0 ; i< 10 ; i++ ){
grid->grid[i][j] = sauvegarde.grid_save[cent_case+dix_case+i] ;
}
dix_case += 10;
}
}
void load_Coo (boat * liste_bateaux, save sauvegarde,int deux_case){
liste_bateaux->CooX=sauvegarde.Coo_save[deux_case] ;
liste_bateaux->CooY=sauvegarde.Coo_save[deux_case +1] ;
deux_case += 2;
}
void load_orientation (boat * liste_bateaux,save sauvegarde,int i ){
liste_bateaux->orientation = sauvegarde.orientation_save[i] ;
}
void load_pv(boat * liste_bateaux,save sauvegarde,int i ){
liste_bateaux->pv= sauvegarde.pv_save[i];
}