Loading of gfx2.dat is ok
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@18 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
ea05f5a6c2
commit
dca8234941
36
divers.c
36
divers.c
@ -4,6 +4,22 @@
|
|||||||
#include "sdlscreen.h"
|
#include "sdlscreen.h"
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
|
// Gestion du mode texte de départ (pour pouvoir y retourner en cas de problème
|
||||||
|
byte Recuperer_nb_lignes(void)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
mov ax,1130h
|
||||||
|
xor bh,bh
|
||||||
|
push es
|
||||||
|
int 10h
|
||||||
|
pop es
|
||||||
|
inc dl
|
||||||
|
mov [esp+28],dl
|
||||||
|
*/
|
||||||
|
puts("Recuperer_nb_lignes non implémenté!\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
word Palette_Compter_nb_couleurs_utilisees(dword* Tableau)
|
word Palette_Compter_nb_couleurs_utilisees(dword* Tableau)
|
||||||
{
|
{
|
||||||
int Nombre_De_Pixels=0; //ECX
|
int Nombre_De_Pixels=0; //ECX
|
||||||
@ -75,12 +91,13 @@ void Effacer_image_courante(byte Couleur)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Sensibilite_souris(word X,word Y)
|
void Sensibilite_souris(word X,word Y)
|
||||||
{;//TODO Implémenter la sensibilité souris
|
{
|
||||||
|
puts("Sensibilite_souris non implémenté!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Get_input(void)
|
void Get_input(void)
|
||||||
{
|
{
|
||||||
SDL_PollEvent(Evenement_SDL);
|
puts("Get_input non implémenté!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -133,12 +150,6 @@ void Clavier_de_depart(void)
|
|||||||
puts("Clavier_de_depart non implémenté!\n");
|
puts("Clavier_de_depart non implémenté!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
byte Recuperer_nb_lignes(void)
|
|
||||||
{
|
|
||||||
puts("Recuperer_nb_lignes non implémenté!\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Clavier_americain(void)
|
void Clavier_americain(void)
|
||||||
{
|
{
|
||||||
puts("Clavier_americain non implémenté!\n");
|
puts("Clavier_americain non implémenté!\n");
|
||||||
@ -249,6 +260,15 @@ byte Lit_pixel_dans_ecran_backup (word X,word Y)
|
|||||||
}
|
}
|
||||||
|
|
||||||
byte Type_de_lecteur_de_disquette(byte Numero_de_lecteur)
|
byte Type_de_lecteur_de_disquette(byte Numero_de_lecteur)
|
||||||
|
// Numero_de_lecteur compris entre 0 et 3 (4 lecteurs de disquettes)
|
||||||
|
//
|
||||||
|
// Résultat = 0 : Pas de lecteur
|
||||||
|
// 1 : Lecteur 360 Ko
|
||||||
|
// 2 : Lecteur 1.2 Mo
|
||||||
|
// 3 : Lecteur 720 Ko
|
||||||
|
// 4 : Lecteur 1.4 Mo
|
||||||
|
// 5 : Lecteur 2.8 Mo (??? pas sur ???)
|
||||||
|
// 6 : Lecteur 2.8 Mo
|
||||||
{
|
{
|
||||||
puts("Type_de_lecteur_de_disquette non implémenté!\n");
|
puts("Type_de_lecteur_de_disquette non implémenté!\n");
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
65
init.c
65
init.c
@ -20,6 +20,8 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include "divers.h"
|
#include "divers.h"
|
||||||
|
|
||||||
|
#include "errno.h"
|
||||||
|
|
||||||
// On déclare méchamment le prototype de Erreur pour éviter de faire un
|
// On déclare méchamment le prototype de Erreur pour éviter de faire un
|
||||||
// fichier "main.h":
|
// fichier "main.h":
|
||||||
void Erreur(int Code);
|
void Erreur(int Code);
|
||||||
@ -27,11 +29,13 @@ void Erreur(int Code);
|
|||||||
// Chercher le répertoire contenant GFX2.EXE
|
// Chercher le répertoire contenant GFX2.EXE
|
||||||
void Chercher_repertoire_du_programme(char * Chaine)
|
void Chercher_repertoire_du_programme(char * Chaine)
|
||||||
{
|
{
|
||||||
int Position;
|
/*int Position;
|
||||||
|
|
||||||
strcpy(Repertoire_du_programme,Chaine);
|
strcpy(Repertoire_du_programme,Chaine);
|
||||||
for (Position=strlen(Repertoire_du_programme);Repertoire_du_programme[Position]!='\\';Position--);
|
for (Position=strlen(Repertoire_du_programme);Repertoire_du_programme[Position]!='/';Position--); //sous linux c'est un /, sous windows c'est \\
|
||||||
Repertoire_du_programme[Position+1]='\0';
|
Repertoire_du_programme[Position+1]='\0';*/
|
||||||
|
puts("Chercher_repertoire_du_programme: implémentation incomplète");
|
||||||
|
Repertoire_du_programme[0]=0; //On va travailler dans le dossier courant ...
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -64,7 +68,7 @@ word Drive_Touche[26]=
|
|||||||
0x0415,
|
0x0415,
|
||||||
0x042C
|
0x042C
|
||||||
};
|
};
|
||||||
// Ajouter un lecteur … la liste de lecteurs
|
// Ajouter un lecteur à la liste de lecteurs
|
||||||
void Ajouter_lecteur(byte Numero, byte Type)
|
void Ajouter_lecteur(byte Numero, byte Type)
|
||||||
{
|
{
|
||||||
Drive[Nb_drives].Lettre=Numero+65;
|
Drive[Nb_drives].Lettre=Numero+65;
|
||||||
@ -78,6 +82,7 @@ void Ajouter_lecteur(byte Numero, byte Type)
|
|||||||
// Rechercher la liste et le type des lecteurs de la machine
|
// Rechercher la liste et le type des lecteurs de la machine
|
||||||
void Rechercher_drives(void)
|
void Rechercher_drives(void)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
byte Lecteur;
|
byte Lecteur;
|
||||||
byte Nb_lecteurs_disquettes;
|
byte Nb_lecteurs_disquettes;
|
||||||
byte Lecteur_de_disquettes;
|
byte Lecteur_de_disquettes;
|
||||||
@ -186,7 +191,9 @@ void Rechercher_drives(void)
|
|||||||
if (Freespace(Lecteur+1)!=-1)
|
if (Freespace(Lecteur+1)!=-1)
|
||||||
Ajouter_lecteur(Lecteur,DRIVE_NETWORK);
|
Ajouter_lecteur(Lecteur,DRIVE_NETWORK);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
//Sous linux, il n'y a pas de lecteurs, on va juste mettre un disque dur qui pointera vers la racine
|
||||||
|
Ajouter_lecteur(0,DRIVE_HDD); //Le lecteur numéro 0 est un disque dur.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -228,20 +235,34 @@ void Charger_DAT(void)
|
|||||||
byte Pos_Y;
|
byte Pos_Y;
|
||||||
word Mot_temporaire;
|
word Mot_temporaire;
|
||||||
|
|
||||||
struct stat* Informations_Fichier=NULL;
|
struct stat Informations_Fichier;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
strcpy(Nom_du_fichier,Repertoire_du_programme);
|
strcpy(Nom_du_fichier,Repertoire_du_programme);
|
||||||
strcat(Nom_du_fichier,"GFX2.DAT");
|
strcat(Nom_du_fichier,"gfx2.dat");
|
||||||
|
*/
|
||||||
Handle=open(Nom_du_fichier,O_RDONLY);
|
strcpy(Nom_du_fichier,"gfx2.dat");
|
||||||
if (Handle==-1)
|
puts("Charger_DAT incomplet");
|
||||||
Erreur(ERREUR_DAT_ABSENT);
|
if(stat(Nom_du_fichier,&Informations_Fichier))
|
||||||
stat(Nom_du_fichier,Informations_Fichier);
|
switch errno
|
||||||
Taille_fichier=Informations_Fichier->st_size;
|
{
|
||||||
|
case EACCES: puts("La permission de parcours est refusée pour un des répertoires contenu dans le chemin path."); break;
|
||||||
|
case EBADF: puts("filedes est un mauvais descripteur."); break;
|
||||||
|
case EFAULT: puts("Un pointeur se trouve en dehors de l'espace d'adressage."); break;
|
||||||
|
case ELOOP: puts("Trop de liens symboliques rencontrés dans le chemin d'accès."); break;
|
||||||
|
case ENAMETOOLONG: puts("Nom de fichier trop long."); break;
|
||||||
|
case ENOENT: puts("Un composant du chemin path n'existe pas, ou il s'agit d'une chaîne vide."); break;
|
||||||
|
case ENOMEM: puts("Pas assez de mémoire pour le noyau."); break;
|
||||||
|
case ENOTDIR: puts("Un composant du chemin d'accès n'est pas un répertoire."); break;
|
||||||
|
}
|
||||||
|
Taille_fichier=Informations_Fichier.st_size;
|
||||||
if (Taille_fichier!=TAILLE_FICHIER_DATA)
|
if (Taille_fichier!=TAILLE_FICHIER_DATA)
|
||||||
Erreur(ERREUR_DAT_CORROMPU);
|
Erreur(ERREUR_DAT_CORROMPU);
|
||||||
|
|
||||||
|
Handle=open(Nom_du_fichier,O_RDONLY);
|
||||||
|
if (Handle==-1)
|
||||||
|
Erreur(ERREUR_DAT_ABSENT);
|
||||||
|
|
||||||
if (read(Handle,Palette_defaut,sizeof(T_Palette))!=sizeof(T_Palette))
|
if (read(Handle,Palette_defaut,sizeof(T_Palette))!=sizeof(T_Palette))
|
||||||
Erreur(ERREUR_DAT_CORROMPU);
|
Erreur(ERREUR_DAT_CORROMPU);
|
||||||
Decrypte((byte *)Palette_defaut,sizeof(T_Palette));
|
Decrypte((byte *)Palette_defaut,sizeof(T_Palette));
|
||||||
@ -941,7 +962,7 @@ void Initialisation_des_boutons(void)
|
|||||||
|
|
||||||
Initialiser_bouton(BOUTON_CHOIX_COL,
|
Initialiser_bouton(BOUTON_CHOIX_COL,
|
||||||
LARGEUR_MENU+1,2,
|
LARGEUR_MENU+1,2,
|
||||||
1,32, // La largeur est mise … jour … chq chngmnt de mode
|
1,32, // La largeur est mise à jour à chq chngmnt de mode
|
||||||
FORME_BOUTON_SANS_CADRE,
|
FORME_BOUTON_SANS_CADRE,
|
||||||
Bouton_Choix_forecolor,Bouton_Choix_backcolor,
|
Bouton_Choix_forecolor,Bouton_Choix_backcolor,
|
||||||
Rien_du_tout,
|
Rien_du_tout,
|
||||||
@ -1738,16 +1759,18 @@ int Charger_CFG(int Tout_charger)
|
|||||||
struct Config_Chunk Chunk;
|
struct Config_Chunk Chunk;
|
||||||
struct Config_Infos_touche CFG_Infos_touche;
|
struct Config_Infos_touche CFG_Infos_touche;
|
||||||
struct Config_Mode_video CFG_Mode_video;
|
struct Config_Mode_video CFG_Mode_video;
|
||||||
struct stat* Informations_Fichier=NULL;
|
struct stat Informations_Fichier;
|
||||||
|
|
||||||
|
|
||||||
strcpy(Nom_du_fichier,Repertoire_du_programme);
|
strcpy(Nom_du_fichier,Repertoire_du_programme);
|
||||||
strcat(Nom_du_fichier,"GFX2.CFG");
|
strcat(Nom_du_fichier,"gfx2.cfg");
|
||||||
|
|
||||||
|
|
||||||
|
stat(Nom_du_fichier,&Informations_Fichier);
|
||||||
|
Taille_fichier=Informations_Fichier.st_size;
|
||||||
|
|
||||||
if ((Handle=open(Nom_du_fichier,O_RDONLY))==-1)
|
if ((Handle=open(Nom_du_fichier,O_RDONLY))==-1)
|
||||||
return ERREUR_CFG_ABSENT;
|
return ERREUR_CFG_ABSENT;
|
||||||
stat(Nom_du_fichier,Informations_Fichier);
|
|
||||||
Taille_fichier=Informations_Fichier->st_size;
|
|
||||||
|
|
||||||
if ( (Taille_fichier<sizeof(CFG_Header))
|
if ( (Taille_fichier<sizeof(CFG_Header))
|
||||||
|| (read(Handle,&CFG_Header,sizeof(CFG_Header))!=sizeof(CFG_Header))
|
|| (read(Handle,&CFG_Header,sizeof(CFG_Header))!=sizeof(CFG_Header))
|
||||||
@ -2044,7 +2067,7 @@ int Sauver_CFG(void)
|
|||||||
if (write(Handle,Smooth_Matrice,sizeof(Smooth_Matrice))!=sizeof(Smooth_Matrice))
|
if (write(Handle,Smooth_Matrice,sizeof(Smooth_Matrice))!=sizeof(Smooth_Matrice))
|
||||||
goto Erreur_sauvegarde_config;
|
goto Erreur_sauvegarde_config;
|
||||||
|
|
||||||
// Sauvegarde des couleurs … exclure
|
// Sauvegarde des couleurs à exclure
|
||||||
Chunk.Numero=CHUNK_EXCLUDE_COLORS;
|
Chunk.Numero=CHUNK_EXCLUDE_COLORS;
|
||||||
Chunk.Taille=sizeof(Exclude_color);
|
Chunk.Taille=sizeof(Exclude_color);
|
||||||
if (write(Handle,&Chunk,sizeof(Chunk))!=sizeof(Chunk))
|
if (write(Handle,&Chunk,sizeof(Chunk))!=sizeof(Chunk))
|
||||||
@ -2108,7 +2131,7 @@ void Initialiser_la_table_precalculee_des_distances_de_couleur(void)
|
|||||||
// 128 valeurs pour chaque teinte, 3 teintes (Rouge, vert et bleu)
|
// 128 valeurs pour chaque teinte, 3 teintes (Rouge, vert et bleu)
|
||||||
MC_Table_differences=(int *)malloc(sizeof(int)*(3*128));
|
MC_Table_differences=(int *)malloc(sizeof(int)*(3*128));
|
||||||
|
|
||||||
// Pour chacune des 128 positions correspondant … une valeur de différence:
|
// Pour chacune des 128 positions correspondant à une valeur de différence:
|
||||||
for (Indice=0;Indice<128;Indice++)
|
for (Indice=0;Indice<128;Indice++)
|
||||||
{
|
{
|
||||||
if (Indice<64)
|
if (Indice<64)
|
||||||
|
|||||||
46
main.c
46
main.c
@ -199,7 +199,7 @@ void Analyse_de_la_ligne_de_commande(int argc,char * argv[])
|
|||||||
Un_fichier_a_ete_passe_en_parametre=1;
|
Un_fichier_a_ete_passe_en_parametre=1;
|
||||||
Option2=2;
|
Option2=2;
|
||||||
|
|
||||||
// On récupŠre le chemin complet du paramŠtre
|
// On récupère le chemin complet du paramètre
|
||||||
Buffer=realpath(argv[1],NULL);
|
Buffer=realpath(argv[1],NULL);
|
||||||
// Et on découpe ce chemin en répertoire(path) + fichier(.ext)
|
// Et on découpe ce chemin en répertoire(path) + fichier(.ext)
|
||||||
_splitpath(Buffer,Principal_Repertoire_fichier,Principal_Nom_fichier);
|
_splitpath(Buffer,Principal_Repertoire_fichier,Principal_Nom_fichier);
|
||||||
@ -231,7 +231,7 @@ void Analyse_de_la_ligne_de_commande(int argc,char * argv[])
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// Erreur: trop de paramŠtres sur la ligne de commande
|
// Erreur: trop de paramètres sur la ligne de commande
|
||||||
Erreur(ERREUR_LIGNE_COMMANDE);
|
Erreur(ERREUR_LIGNE_COMMANDE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -253,9 +253,9 @@ void Initialisation_du_programme(int argc,char * argv[])
|
|||||||
|
|
||||||
printf("°±²Û GrafX 2.00 %s%s þ Copyright (c)1996-1999 Sunset Design Û²±°\n",ALPHA_BETA,POURCENTAGE_VERSION);
|
printf("°±²Û GrafX 2.00 %s%s þ Copyright (c)1996-1999 Sunset Design Û²±°\n",ALPHA_BETA,POURCENTAGE_VERSION);
|
||||||
|
|
||||||
// On crée dŠs maintenant les descripteurs des listes de pages pour la page
|
// On crée dès maintenant les descripteurs des listes de pages pour la page
|
||||||
// principale et la page de brouillon afin que leurs champs ne soient pas
|
// principale et la page de brouillon afin que leurs champs ne soient pas
|
||||||
// invalide lors des appels aux multiples fonctions manipulées …
|
// invalide lors des appels aux multiples fonctions manipulées à
|
||||||
// l'initialisation du programme.
|
// l'initialisation du programme.
|
||||||
Principal_Backups=(S_Liste_de_pages *)malloc(sizeof(S_Liste_de_pages));
|
Principal_Backups=(S_Liste_de_pages *)malloc(sizeof(S_Liste_de_pages));
|
||||||
Brouillon_Backups=(S_Liste_de_pages *)malloc(sizeof(S_Liste_de_pages));
|
Brouillon_Backups=(S_Liste_de_pages *)malloc(sizeof(S_Liste_de_pages));
|
||||||
@ -267,7 +267,7 @@ void Initialisation_du_programme(int argc,char * argv[])
|
|||||||
// désignées au démarrage (couleurs du menu, ...)
|
// désignées au démarrage (couleurs du menu, ...)
|
||||||
Initialiser_la_table_precalculee_des_distances_de_couleur();
|
Initialiser_la_table_precalculee_des_distances_de_couleur();
|
||||||
|
|
||||||
// On détermine dŠs le départ o— se trouve le fichier:
|
// On détermine dès le départ où se trouve le fichier:
|
||||||
Chercher_repertoire_du_programme(argv[0]);
|
Chercher_repertoire_du_programme(argv[0]);
|
||||||
// On détecte les lecteurs qui sont accessibles:
|
// On détecte les lecteurs qui sont accessibles:
|
||||||
Rechercher_drives();
|
Rechercher_drives();
|
||||||
@ -303,7 +303,7 @@ void Initialisation_du_programme(int argc,char * argv[])
|
|||||||
Brosse_File_list_Decalage=0;
|
Brosse_File_list_Decalage=0;
|
||||||
Brosse_Format=0;
|
Brosse_Format=0;
|
||||||
|
|
||||||
// On initialise les commentaires des images … des chaŒnes vides
|
// On initialise les commentaires des images à des chaŒnes vides
|
||||||
Principal_Commentaire[0]='\0';
|
Principal_Commentaire[0]='\0';
|
||||||
Brouillon_Commentaire[0]='\0';
|
Brouillon_Commentaire[0]='\0';
|
||||||
Brosse_Commentaire[0]='\0';
|
Brosse_Commentaire[0]='\0';
|
||||||
@ -401,8 +401,8 @@ void Initialisation_du_programme(int argc,char * argv[])
|
|||||||
Colorize_Mode_en_cours=0; // Par défaut, la méthode par interpolation
|
Colorize_Mode_en_cours=0; // Par défaut, la méthode par interpolation
|
||||||
Calculer_les_tables_de_Colorize();
|
Calculer_les_tables_de_Colorize();
|
||||||
// On initialise les infos du mode Tiling:
|
// On initialise les infos du mode Tiling:
|
||||||
Tiling_Mode=0; // Pas besoin d'initialiser les décalages car ‡a se fait
|
Tiling_Mode=0; // Pas besoin d'initialiser les décalages car ça se fait
|
||||||
// en prenant une brosse (toujours mis … 0).
|
// en prenant une brosse (toujours mis à 0).
|
||||||
// On initialise les infos du mode Mask:
|
// On initialise les infos du mode Mask:
|
||||||
Mask_Mode=0;
|
Mask_Mode=0;
|
||||||
|
|
||||||
@ -412,15 +412,11 @@ void Initialisation_du_programme(int argc,char * argv[])
|
|||||||
Spray_Delay=1;
|
Spray_Delay=1;
|
||||||
Spray_Mono_flow=10;
|
Spray_Mono_flow=10;
|
||||||
memset(Spray_Multi_flow,0,256);
|
memset(Spray_Multi_flow,0,256);
|
||||||
srand(time(NULL)); // On randomize un peu tout ‡a...
|
srand(time(NULL)); // On randomize un peu tout ça...
|
||||||
|
|
||||||
// Récupération du nombre de lignes de l'ancien mode
|
|
||||||
Ancien_nb_lignes=Recuperer_nb_lignes();
|
|
||||||
// Passer en clavier américain
|
// Passer en clavier américain
|
||||||
Clavier_americain();
|
//Clavier_americain();
|
||||||
|
//TODO: Voir à quoi ça sert vraiement ...
|
||||||
// Tester la présence de la souris
|
|
||||||
if (!Detection_souris()) Erreur(ERREUR_DRIVER_SOURIS);
|
|
||||||
|
|
||||||
// Initialisation des boutons
|
// Initialisation des boutons
|
||||||
Initialisation_des_boutons();
|
Initialisation_des_boutons();
|
||||||
@ -519,10 +515,10 @@ void Initialisation_du_programme(int argc,char * argv[])
|
|||||||
Erreur(ERREUR_MEMOIRE);
|
Erreur(ERREUR_MEMOIRE);
|
||||||
|
|
||||||
// On remet le nom par défaut pour la page de brouillon car il été modifié
|
// On remet le nom par défaut pour la page de brouillon car il été modifié
|
||||||
// par le passage d'un fichier en paramŠtre lors du traitement précédent.
|
// par le passage d'un fichier en paramètre lors du traitement précédent.
|
||||||
// Note: le fait que l'on ne modifie que les variables globales Brouillon_*
|
// Note: le fait que l'on ne modifie que les variables globales Brouillon_*
|
||||||
// et pas les infos contenues dans la page de brouillon elle-mˆme ne m'ins-
|
// et pas les infos contenues dans la page de brouillon elle-même ne m'ins-
|
||||||
// -pire pas confiance mais ‡a a l'air de marcher sans poser de problŠmes,
|
// -pire pas confiance mais ça a l'air de marcher sans poser de problèmes,
|
||||||
// alors...
|
// alors...
|
||||||
if (Un_fichier_a_ete_passe_en_parametre)
|
if (Un_fichier_a_ete_passe_en_parametre)
|
||||||
{
|
{
|
||||||
@ -549,10 +545,10 @@ void Initialisation_du_programme(int argc,char * argv[])
|
|||||||
Brouillon_Image_modifiee=0;
|
Brouillon_Image_modifiee=0;
|
||||||
Principal_Image_modifiee=0;
|
Principal_Image_modifiee=0;
|
||||||
|
|
||||||
// Le programme débute en mode de dessin … la main
|
// Le programme débute en mode de dessin à la main
|
||||||
Enclencher_bouton(BOUTON_DESSIN,A_GAUCHE);
|
Enclencher_bouton(BOUTON_DESSIN,A_GAUCHE);
|
||||||
|
|
||||||
// On initialise la brosse initiale … 1 pixel blanc:
|
// On initialise la brosse initiale à 1 pixel blanc:
|
||||||
Brosse_Largeur=1;
|
Brosse_Largeur=1;
|
||||||
Brosse_Hauteur=1;
|
Brosse_Hauteur=1;
|
||||||
Capturer_brosse(0,0,0,0,0);
|
Capturer_brosse(0,0,0,0,0);
|
||||||
@ -565,22 +561,22 @@ void Fermeture_du_programme(void)
|
|||||||
unsigned Bidon;
|
unsigned Bidon;
|
||||||
int Retour;
|
int Retour;
|
||||||
|
|
||||||
// On libŠre le buffer de gestion de lignes
|
// On libère le buffer de gestion de lignes
|
||||||
free(Buffer_de_ligne_horizontale);
|
free(Buffer_de_ligne_horizontale);
|
||||||
|
|
||||||
// On libŠre le pinceau spécial
|
// On libère le pinceau spécial
|
||||||
free(Pinceau_Sprite);
|
free(Pinceau_Sprite);
|
||||||
|
|
||||||
// On libŠre la table précalculée des distances de teintes
|
// On libère la table précalculée des distances de teintes
|
||||||
free(MC_Table_differences);
|
free(MC_Table_differences);
|
||||||
|
|
||||||
// On libŠre les différents écrans virtuels et brosse:
|
// On libère les différents écrans virtuels et brosse:
|
||||||
free(Brosse);
|
free(Brosse);
|
||||||
Nouveau_nombre_de_backups(0);
|
Nouveau_nombre_de_backups(0);
|
||||||
free(Brouillon_Ecran);
|
free(Brouillon_Ecran);
|
||||||
free(Principal_Ecran);
|
free(Principal_Ecran);
|
||||||
|
|
||||||
// On libŠre également les données de l'aide:
|
// On libère également les données de l'aide:
|
||||||
for (Bidon=0;Bidon<NB_SECTIONS_AIDE;Bidon++)
|
for (Bidon=0;Bidon<NB_SECTIONS_AIDE;Bidon++)
|
||||||
free(Table_d_aide[Bidon].Debut_de_la_liste);
|
free(Table_d_aide[Bidon].Debut_de_la_liste);
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user