config file SAVINg is also endian-aware now.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@38 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
3b9e12b53c
commit
d3b41bb251
8
divers.c
8
divers.c
@ -72,7 +72,13 @@ void Set_palette(T_Palette Palette)
|
||||
|
||||
void Attendre_fin_de_click(void)
|
||||
{
|
||||
puts("Attendre_fin_de_click non implémenté!\n");
|
||||
do
|
||||
{
|
||||
SDL_PumpEvents();
|
||||
puts("Attente fin clic...");
|
||||
}
|
||||
while(SDL_GetMouseState(NULL, NULL)&(SDL_BUTTON(1) | SDL_BUTTON(2) | SDL_BUTTON(3))); //On attend tant que l'un des trois boutons est enfoncé
|
||||
Mouse_K=0;
|
||||
}
|
||||
|
||||
void Effacer_image_courante_Stencil(byte Couleur, byte * Pochoir)
|
||||
|
||||
76
init.c
76
init.c
@ -346,10 +346,10 @@ void Charger_DAT(void)
|
||||
Erreur(ERREUR_DAT_CORROMPU);
|
||||
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
//Si on est en big endian il faut échanger les octets car la structure est prévue pour du x86.
|
||||
Mot_temporaire=bswap_16(Mot_temporaire);
|
||||
#endif
|
||||
|
||||
printf("%d Nb Lignes: %x ",Indice,Mot_temporaire);
|
||||
// On copie ce nombre de lignes dans la table:
|
||||
Table_d_aide[Indice].Nombre_de_lignes=Mot_temporaire;
|
||||
|
||||
@ -358,10 +358,10 @@ printf("%d Nb Lignes: %x ",Indice,Mot_temporaire);
|
||||
Erreur(ERREUR_DAT_CORROMPU);
|
||||
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
//Si on est en big endian il faut échanger les octets car la structure est prévue pour du x86.
|
||||
Mot_temporaire=bswap_16(Mot_temporaire);
|
||||
#endif
|
||||
|
||||
printf("Taille: %x\n",Mot_temporaire);
|
||||
// On alloue la mémoire correspondante:
|
||||
if (!(Table_d_aide[Indice].Debut_de_la_liste=(byte *)malloc(Mot_temporaire)))
|
||||
Erreur(ERREUR_MEMOIRE);
|
||||
@ -2018,7 +2018,11 @@ int Sauver_CFG(void)
|
||||
// Enregistrement des touches
|
||||
Chunk.Numero=CHUNK_TOUCHES;
|
||||
Chunk.Taille=NB_TOUCHES*sizeof(CFG_Infos_touche);
|
||||
if (write(Handle,&Chunk,sizeof(Chunk))!=sizeof(Chunk))
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
//On remet les octets dans l'ordre "normal"
|
||||
Chunk.Taille=bswap_16(Chunk.Taille);
|
||||
#endif
|
||||
if (write(Handle,&(Chunk.Numero),sizeof(byte))!=sizeof(byte)||write(Handle,&(Chunk.Taille),sizeof(word))!=sizeof(word))
|
||||
goto Erreur_sauvegarde_config;
|
||||
for (Indice=0; Indice<NB_TOUCHES; Indice++)
|
||||
{
|
||||
@ -2030,28 +2034,41 @@ int Sauver_CFG(void)
|
||||
case 2 : CFG_Infos_touche.Touche=Bouton[Ordonnancement[Indice]&0xFF].Raccourci_droite; break;
|
||||
}
|
||||
CFG_Infos_touche.Touche2=0x00FF;
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
CFG_Infos_touche.Touche=bswap_16(CFG_Infos_touche.Touche);
|
||||
CFG_Infos_touche.Touche2=bswap_16(CFG_Infos_touche.Touche2);
|
||||
CFG_Infos_touche.Numero=bswap_16(CFG_Infos_touche.Numero);
|
||||
#endif
|
||||
if (write(Handle,&CFG_Infos_touche,sizeof(CFG_Infos_touche))!=sizeof(CFG_Infos_touche))
|
||||
goto Erreur_sauvegarde_config;
|
||||
}
|
||||
|
||||
// Sauvegarde de l'état de chaque mode vidéo
|
||||
Chunk.Numero=CHUNK_MODES_VIDEO;
|
||||
Chunk.Taille=NB_MODES_VIDEO*sizeof(CFG_Mode_video);
|
||||
if (write(Handle,&Chunk,sizeof(Chunk))!=sizeof(Chunk))
|
||||
Chunk.Taille=NB_MODES_VIDEO*5 /*sizeof(CFG_Mode_video)*/;
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
//On remet les octets dans l'ordre "normal"
|
||||
Chunk.Taille=bswap_16(Chunk.Taille);
|
||||
#endif
|
||||
if (write(Handle,&(Chunk.Numero),sizeof(byte))!=sizeof(byte)||write(Handle,&(Chunk.Taille),sizeof(word))!=sizeof(word))
|
||||
goto Erreur_sauvegarde_config;
|
||||
for (Indice=0; Indice<NB_MODES_VIDEO; Indice++)
|
||||
{
|
||||
CFG_Mode_video.Etat =(Mode_video[Indice].Mode<<6) | (Mode_video[Indice].Etat&3);
|
||||
CFG_Mode_video.Largeur=Mode_video[Indice].Largeur;
|
||||
CFG_Mode_video.Hauteur=Mode_video[Indice].Hauteur;
|
||||
if (write(Handle,&CFG_Mode_video,sizeof(CFG_Mode_video))!=sizeof(CFG_Mode_video))
|
||||
if (write(Handle,&(CFG_Mode_video.Etat),1)!=1 ||write(Handle,&(CFG_Mode_video.Largeur),2)!=2 ||write(Handle,&(CFG_Mode_video.Hauteur),2)!=2)
|
||||
goto Erreur_sauvegarde_config;
|
||||
}
|
||||
|
||||
// Ecriture des données du Shade (précédées du shade en cours)
|
||||
Chunk.Numero=CHUNK_SHADE;
|
||||
Chunk.Taille=sizeof(Shade_Liste)+sizeof(Shade_Actuel);
|
||||
if (write(Handle,&Chunk,sizeof(Chunk))!=sizeof(Chunk))
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
//On remet les octets dans l'ordre "normal"
|
||||
Chunk.Taille=bswap_16(Chunk.Taille);
|
||||
#endif
|
||||
if (write(Handle,&(Chunk.Numero),sizeof(byte))!=sizeof(byte)||write(Handle,&(Chunk.Taille),sizeof(word))!=sizeof(word))
|
||||
goto Erreur_sauvegarde_config;
|
||||
if (write(Handle,&Shade_Actuel,sizeof(Shade_Actuel))!=sizeof(Shade_Actuel))
|
||||
goto Erreur_sauvegarde_config;
|
||||
@ -2061,7 +2078,11 @@ int Sauver_CFG(void)
|
||||
// Sauvegarde des informations du Masque
|
||||
Chunk.Numero=CHUNK_MASQUE;
|
||||
Chunk.Taille=sizeof(Mask);
|
||||
if (write(Handle,&Chunk,sizeof(Chunk))!=sizeof(Chunk))
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
//On remet les octets dans l'ordre "normal"
|
||||
Chunk.Taille=bswap_16(Chunk.Taille);
|
||||
#endif
|
||||
if (write(Handle,&(Chunk.Numero),sizeof(byte))!=sizeof(byte)||write(Handle,&(Chunk.Taille),sizeof(word))!=sizeof(word))
|
||||
goto Erreur_sauvegarde_config;
|
||||
if (write(Handle,Mask,sizeof(Mask))!=sizeof(Mask))
|
||||
goto Erreur_sauvegarde_config;
|
||||
@ -2069,7 +2090,11 @@ int Sauver_CFG(void)
|
||||
// Sauvegarde des informations du Stencil
|
||||
Chunk.Numero=CHUNK_STENCIL;
|
||||
Chunk.Taille=sizeof(Stencil);
|
||||
if (write(Handle,&Chunk,sizeof(Chunk))!=sizeof(Chunk))
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
//On remet les octets dans l'ordre "normal"
|
||||
Chunk.Taille=bswap_16(Chunk.Taille);
|
||||
#endif
|
||||
if (write(Handle,&(Chunk.Numero),sizeof(byte))!=sizeof(byte)||write(Handle,&(Chunk.Taille),sizeof(word))!=sizeof(word))
|
||||
goto Erreur_sauvegarde_config;
|
||||
if (write(Handle,Stencil,sizeof(Stencil))!=sizeof(Stencil))
|
||||
goto Erreur_sauvegarde_config;
|
||||
@ -2077,17 +2102,32 @@ int Sauver_CFG(void)
|
||||
// Sauvegarde des informations des dégradés
|
||||
Chunk.Numero=CHUNK_DEGRADES;
|
||||
Chunk.Taille=sizeof(Degrade_Tableau)+1;
|
||||
if (write(Handle,&Chunk,sizeof(Chunk))!=sizeof(Chunk))
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
//On remet les octets dans l'ordre "normal"
|
||||
Chunk.Taille=bswap_16(Chunk.Taille);
|
||||
#endif
|
||||
if (write(Handle,&(Chunk.Numero),sizeof(byte))!=sizeof(byte)||write(Handle,&(Chunk.Taille),sizeof(word))!=sizeof(word))
|
||||
goto Erreur_sauvegarde_config;
|
||||
if (write(Handle,&Degrade_Courant,1)!=1)
|
||||
goto Erreur_sauvegarde_config;
|
||||
if (write(Handle,Degrade_Tableau,sizeof(Degrade_Tableau))!=sizeof(Degrade_Tableau))
|
||||
for(Indice=0;Indice<16;Indice++)
|
||||
{
|
||||
if (write(Handle,&(Degrade_Tableau[Indice].Debut),1)!=1 ||
|
||||
write(Handle,&(Degrade_Tableau[Indice].Fin),1)!=1 ||
|
||||
write(Handle,&(Degrade_Tableau[Indice].Inverse),4)!=4 ||
|
||||
write(Handle,&(Degrade_Tableau[Indice].Melange),4)!=4 ||
|
||||
write(Handle,&(Degrade_Tableau[Indice].Technique),4)!=4 )
|
||||
goto Erreur_sauvegarde_config;
|
||||
}
|
||||
|
||||
// Sauvegarde de la matrice du Smooth
|
||||
Chunk.Numero=CHUNK_SMOOTH;
|
||||
Chunk.Taille=sizeof(Smooth_Matrice);
|
||||
if (write(Handle,&Chunk,sizeof(Chunk))!=sizeof(Chunk))
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
//On remet les octets dans l'ordre "normal"
|
||||
Chunk.Taille=bswap_16(Chunk.Taille);
|
||||
#endif
|
||||
if (write(Handle,&(Chunk.Numero),sizeof(byte))!=sizeof(byte)||write(Handle,&(Chunk.Taille),sizeof(word))!=sizeof(word))
|
||||
goto Erreur_sauvegarde_config;
|
||||
if (write(Handle,Smooth_Matrice,sizeof(Smooth_Matrice))!=sizeof(Smooth_Matrice))
|
||||
goto Erreur_sauvegarde_config;
|
||||
@ -2095,7 +2135,11 @@ int Sauver_CFG(void)
|
||||
// Sauvegarde des couleurs à exclure
|
||||
Chunk.Numero=CHUNK_EXCLUDE_COLORS;
|
||||
Chunk.Taille=sizeof(Exclude_color);
|
||||
if (write(Handle,&Chunk,sizeof(Chunk))!=sizeof(Chunk))
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
//On remet les octets dans l'ordre "normal"
|
||||
Chunk.Taille=bswap_16(Chunk.Taille);
|
||||
#endif
|
||||
if (write(Handle,&(Chunk.Numero),sizeof(byte))!=sizeof(byte)||write(Handle,&(Chunk.Taille),sizeof(word))!=sizeof(word))
|
||||
goto Erreur_sauvegarde_config;
|
||||
if (write(Handle,Exclude_color,sizeof(Exclude_color))!=sizeof(Exclude_color))
|
||||
goto Erreur_sauvegarde_config;
|
||||
@ -2103,7 +2147,11 @@ int Sauver_CFG(void)
|
||||
// Sauvegarde des informations du Quick-shade
|
||||
Chunk.Numero=CHUNK_QUICK_SHADE;
|
||||
Chunk.Taille=sizeof(Quick_shade_Step)+sizeof(Quick_shade_Loop);
|
||||
if (write(Handle,&Chunk,sizeof(Chunk))!=sizeof(Chunk))
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
//On remet les octets dans l'ordre "normal"
|
||||
Chunk.Taille=bswap_16(Chunk.Taille);
|
||||
#endif
|
||||
if (write(Handle,&(Chunk.Numero),sizeof(byte))!=sizeof(byte)||write(Handle,&(Chunk.Taille),sizeof(word))!=sizeof(word))
|
||||
goto Erreur_sauvegarde_config;
|
||||
if (write(Handle,&Quick_shade_Step,sizeof(Quick_shade_Step))!=sizeof(Quick_shade_Step))
|
||||
goto Erreur_sauvegarde_config;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user