Use fopen/fread instead of open/read for config file. That's the way things should be done.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@68 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
e2a92f8b69
commit
c0125860d3
64
init.c
64
init.c
@ -19,28 +19,27 @@
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include "divers.h"
|
||||
#include "erreurs.h"
|
||||
|
||||
#include "errno.h"
|
||||
|
||||
#ifdef __linux__
|
||||
#include <endian.h>
|
||||
#include <byteswap.h>
|
||||
#elif __WATCOMC__
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
// On déclare méchamment le prototype de Erreur pour éviter de faire un
|
||||
// fichier "main.h":
|
||||
void Erreur(int Code);
|
||||
|
||||
// Chercher le répertoire contenant GFX2.EXE
|
||||
void Chercher_repertoire_du_programme(char * Chaine)
|
||||
{
|
||||
/*int Position;
|
||||
|
||||
strcpy(Repertoire_du_programme,Chaine);
|
||||
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';*/
|
||||
#ifdef __WATCOMC__
|
||||
GetCurrentDirectory(255,Repertoire_du_programme);
|
||||
strcat(Repertoire_du_programme,"\\");
|
||||
#elif __linux__
|
||||
puts("Chercher_repertoire_du_programme: implémentation incomplète");
|
||||
Repertoire_du_programme[0]=0; //On va travailler dans le dossier courant ...
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@ -207,7 +206,7 @@ Ajouter_lecteur(0,DRIVE_HDD); //Le lecteur num
|
||||
|
||||
#define DECRYPT_TAILLE_CLE 14
|
||||
byte Decrypt_compteur=0;
|
||||
char Decrypt_cle[DECRYPT_TAILLE_CLE]="Sunset Design";
|
||||
const char Decrypt_cle[DECRYPT_TAILLE_CLE]="Sunset Design";
|
||||
|
||||
byte Decrypt(byte Octet)
|
||||
{
|
||||
@ -232,7 +231,7 @@ void Decrypte(byte * Donnee,int Taille)
|
||||
|
||||
void Charger_DAT(void)
|
||||
{
|
||||
int Handle;
|
||||
FILE* Handle;
|
||||
int Taille_fichier;
|
||||
int Indice;
|
||||
char Nom_du_fichier[256];
|
||||
@ -260,54 +259,61 @@ void Charger_DAT(void)
|
||||
case ELOOP: puts("Trop de liens symboliques rencontrés dans le chemin d'accès."); break;
|
||||
#endif
|
||||
}
|
||||
|
||||
Taille_fichier=Informations_Fichier.st_size;
|
||||
if (Taille_fichier!=TAILLE_FICHIER_DATA)
|
||||
{
|
||||
DEBUG("Taille",0);
|
||||
Erreur(ERREUR_DAT_CORROMPU);
|
||||
}
|
||||
|
||||
Handle=open(Nom_du_fichier,O_RDONLY);
|
||||
if (Handle==-1)
|
||||
Handle=fopen(Nom_du_fichier,"rb");
|
||||
if (Handle==NULL)
|
||||
{
|
||||
DEBUG("Absent",0);
|
||||
Erreur(ERREUR_DAT_ABSENT);
|
||||
}
|
||||
|
||||
if (read(Handle,Palette_defaut,sizeof(T_Palette))!=sizeof(T_Palette))
|
||||
if (fread(Palette_defaut,1,sizeof(T_Palette),Handle)!=sizeof(T_Palette))
|
||||
Erreur(ERREUR_DAT_CORROMPU);
|
||||
Decrypte((byte *)Palette_defaut,sizeof(T_Palette));
|
||||
|
||||
if (read(Handle,BLOCK_MENU,LARGEUR_MENU*HAUTEUR_MENU)!=LARGEUR_MENU*HAUTEUR_MENU)
|
||||
if (fread(BLOCK_MENU,1,LARGEUR_MENU*HAUTEUR_MENU,Handle)!=LARGEUR_MENU*HAUTEUR_MENU)
|
||||
Erreur(ERREUR_DAT_CORROMPU);
|
||||
Decrypte((byte *)BLOCK_MENU,LARGEUR_MENU*HAUTEUR_MENU);
|
||||
|
||||
if (read(Handle,SPRITE_EFFET,LARGEUR_SPRITE_MENU*HAUTEUR_SPRITE_MENU*NB_SPRITES_EFFETS)!=
|
||||
if (fread(SPRITE_EFFET,1,LARGEUR_SPRITE_MENU*HAUTEUR_SPRITE_MENU*NB_SPRITES_EFFETS,Handle)!=
|
||||
LARGEUR_SPRITE_MENU*HAUTEUR_SPRITE_MENU*NB_SPRITES_EFFETS)
|
||||
Erreur(ERREUR_DAT_CORROMPU);
|
||||
Decrypte((byte *)SPRITE_EFFET,LARGEUR_SPRITE_MENU*HAUTEUR_SPRITE_MENU*NB_SPRITES_EFFETS);
|
||||
|
||||
if (read(Handle,SPRITE_CURSEUR,LARGEUR_SPRITE_CURSEUR*HAUTEUR_SPRITE_CURSEUR*NB_SPRITES_CURSEUR)!=
|
||||
if (fread(SPRITE_CURSEUR,1,LARGEUR_SPRITE_CURSEUR*HAUTEUR_SPRITE_CURSEUR*NB_SPRITES_CURSEUR,Handle)!=
|
||||
LARGEUR_SPRITE_CURSEUR*HAUTEUR_SPRITE_CURSEUR*NB_SPRITES_CURSEUR)
|
||||
Erreur(ERREUR_DAT_CORROMPU);
|
||||
Decrypte((byte *)SPRITE_CURSEUR,LARGEUR_SPRITE_CURSEUR*HAUTEUR_SPRITE_CURSEUR*NB_SPRITES_CURSEUR);
|
||||
|
||||
if (read(Handle,SPRITE_MENU,LARGEUR_SPRITE_MENU*HAUTEUR_SPRITE_MENU*NB_SPRITES_MENU)!=
|
||||
if (fread(SPRITE_MENU,1,LARGEUR_SPRITE_MENU*HAUTEUR_SPRITE_MENU*NB_SPRITES_MENU,Handle)!=
|
||||
LARGEUR_SPRITE_MENU*HAUTEUR_SPRITE_MENU*NB_SPRITES_MENU)
|
||||
Erreur(ERREUR_DAT_CORROMPU);
|
||||
Decrypte((byte *)SPRITE_MENU,LARGEUR_SPRITE_MENU*HAUTEUR_SPRITE_MENU*NB_SPRITES_MENU);
|
||||
|
||||
if (read(Handle,SPRITE_PINCEAU,LARGEUR_PINCEAU*HAUTEUR_PINCEAU*NB_SPRITES_PINCEAU)!=
|
||||
if (fread(SPRITE_PINCEAU,1,LARGEUR_PINCEAU*HAUTEUR_PINCEAU*NB_SPRITES_PINCEAU,Handle)!=
|
||||
LARGEUR_PINCEAU*HAUTEUR_PINCEAU*NB_SPRITES_PINCEAU)
|
||||
Erreur(ERREUR_DAT_CORROMPU);
|
||||
Decrypte((byte *)SPRITE_PINCEAU,LARGEUR_PINCEAU*HAUTEUR_PINCEAU*NB_SPRITES_PINCEAU);
|
||||
|
||||
if (read(Handle,SPRITE_DRIVE,LARGEUR_SPRITE_DRIVE*HAUTEUR_SPRITE_DRIVE*NB_SPRITES_DRIVES)!=
|
||||
if (fread(SPRITE_DRIVE,1,LARGEUR_SPRITE_DRIVE*HAUTEUR_SPRITE_DRIVE*NB_SPRITES_DRIVES,Handle)!=
|
||||
LARGEUR_SPRITE_DRIVE*HAUTEUR_SPRITE_DRIVE*NB_SPRITES_DRIVES)
|
||||
Erreur(ERREUR_DAT_CORROMPU);
|
||||
Decrypte((byte *)SPRITE_DRIVE,LARGEUR_SPRITE_DRIVE*HAUTEUR_SPRITE_DRIVE*NB_SPRITES_DRIVES);
|
||||
|
||||
if (!(Logo_GrafX2=(byte *)malloc(231*56)))
|
||||
Erreur(ERREUR_MEMOIRE);
|
||||
if (read(Handle,Logo_GrafX2,231*56)!=(231*56))
|
||||
if (fread(Logo_GrafX2,1,231*56,Handle)!=(231*56))
|
||||
Erreur(ERREUR_DAT_CORROMPU);
|
||||
Decrypte(Logo_GrafX2,231*56);
|
||||
|
||||
if (read(Handle,TRAME_PREDEFINIE,2*16*NB_TRAMES_PREDEFINIES)!=2*16*NB_TRAMES_PREDEFINIES)
|
||||
if (fread(TRAME_PREDEFINIE,1,2*16*NB_TRAMES_PREDEFINIES,Handle)!=2*16*NB_TRAMES_PREDEFINIES)
|
||||
Erreur(ERREUR_DAT_CORROMPU);
|
||||
Decrypte((byte *)TRAME_PREDEFINIE,2*16*NB_TRAMES_PREDEFINIES);
|
||||
|
||||
@ -316,7 +322,7 @@ void Charger_DAT(void)
|
||||
Erreur(ERREUR_MEMOIRE);
|
||||
|
||||
// Lecture de la fonte systŠme
|
||||
if (read(Handle,Fonte_temporaire,2048)!=2048)
|
||||
if (fread(Fonte_temporaire,1,2048,Handle)!=2048)
|
||||
Erreur(ERREUR_DAT_CORROMPU);
|
||||
Decrypte(Fonte_temporaire,2048);
|
||||
for (Indice=0;Indice<256;Indice++)
|
||||
@ -325,7 +331,7 @@ void Charger_DAT(void)
|
||||
Fonte_systeme[(Indice<<6)+(Pos_X<<3)+Pos_Y]=( ((*(Fonte_temporaire+(Indice*8)+Pos_Y))&(0x80>>Pos_X)) ? 1 : 0);
|
||||
|
||||
// Lecture de la fonte alternative
|
||||
if (read(Handle,Fonte_temporaire,2048)!=2048)
|
||||
if (fread(Fonte_temporaire,1,2048,Handle)!=2048)
|
||||
Erreur(ERREUR_DAT_CORROMPU);
|
||||
Decrypte(Fonte_temporaire,2048);
|
||||
for (Indice=0;Indice<256;Indice++)
|
||||
@ -338,7 +344,7 @@ void Charger_DAT(void)
|
||||
Fonte=Fonte_systeme;
|
||||
|
||||
// Lecture de la fonte 6x8: (spéciale aide)
|
||||
if (read(Handle,Fonte_help,(315*6*8))!=(315*6*8))
|
||||
if (fread(Fonte_help,1,315*6*8,Handle)!=(315*6*8))
|
||||
Erreur(ERREUR_DAT_CORROMPU);
|
||||
Decrypte((byte*)Fonte_help,(315*6*8));
|
||||
|
||||
@ -348,7 +354,7 @@ void Charger_DAT(void)
|
||||
for (Indice=0;Indice<NB_SECTIONS_AIDE;Indice++)
|
||||
{
|
||||
// On lit le nombre de lignes:
|
||||
if (read(Handle,&Mot_temporaire,2)!=2)
|
||||
if (fread(&Mot_temporaire,1,2,Handle)!=2)
|
||||
Erreur(ERREUR_DAT_CORROMPU);
|
||||
#ifndef __WATCOMC__
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
@ -361,7 +367,7 @@ void Charger_DAT(void)
|
||||
Table_d_aide[Indice].Nombre_de_lignes=Mot_temporaire;
|
||||
|
||||
// On lit la place que la section prend en mémoire:
|
||||
if (read(Handle,&Mot_temporaire,2)!=2)
|
||||
if (fread(&Mot_temporaire,1,2,Handle)!=2)
|
||||
Erreur(ERREUR_DAT_CORROMPU);
|
||||
#ifndef __WATCOMC__
|
||||
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||
@ -375,11 +381,11 @@ void Charger_DAT(void)
|
||||
Erreur(ERREUR_MEMOIRE);
|
||||
|
||||
// Et on lit la section d'aide en question:
|
||||
if (read(Handle,Table_d_aide[Indice].Debut_de_la_liste,Mot_temporaire)!=Mot_temporaire)
|
||||
if (fread(Table_d_aide[Indice].Debut_de_la_liste,1,Mot_temporaire,Handle)!=Mot_temporaire)
|
||||
Erreur(ERREUR_DAT_CORROMPU);
|
||||
}
|
||||
|
||||
close(Handle);
|
||||
fclose(Handle);
|
||||
|
||||
Section_d_aide_en_cours=0;
|
||||
Position_d_aide_en_cours=0;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,7 @@ WRect
|
||||
-40
|
||||
-53
|
||||
10320
|
||||
10346
|
||||
9973
|
||||
2
|
||||
MProject
|
||||
3
|
||||
@ -31,7 +31,7 @@ WRect
|
||||
0
|
||||
0
|
||||
1230
|
||||
4840
|
||||
5733
|
||||
0
|
||||
0
|
||||
9
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user