SDL Graphics mode detection and checking if valid, CFG saves only configuration for valid modes where the user set <3 | Imperfect | Unsupported.

Modes are not sorted yet (cosmetic)


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@199 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Yves Rizoud 2008-10-05 02:10:53 +00:00
parent 0705aae104
commit 40fe3ccf09
8 changed files with 140 additions and 118 deletions

View File

@ -1184,9 +1184,7 @@ void Cocher_bouton_mode(short Pos_X, short Pos_Y, byte Etat)
{
byte Couleur;
if (Etat>=128)
Etat-=128;
switch (Etat)
switch (Etat & 0x7F)
{
case 0 : Couleur=CM_Blanc; break;
case 1 : Couleur=CM_Clair; break;
@ -1276,7 +1274,6 @@ void Bouton_Resol(void)
short Debut_liste;
short Position_curseur;
short Temp;
byte Temp2;
char Chaine[5];
struct Fenetre_Bouton_special * Bouton_saisie_Width, * Bouton_saisie_Height;
@ -1314,14 +1311,14 @@ void Bouton_Resol(void)
if (Mode_choisi>=6)
{
if (Mode_choisi<NB_MODES_VIDEO-6)
if (Mode_choisi<Nb_modes_video-6)
{
Debut_liste=Mode_choisi-5;
Position_curseur=5;
}
else
{
Debut_liste=NB_MODES_VIDEO-12;
Debut_liste=Nb_modes_video-12;
Position_curseur=Mode_choisi-Debut_liste;
}
}
@ -1331,7 +1328,7 @@ void Bouton_Resol(void)
Position_curseur=Mode_choisi;
}
Fenetre_Definir_bouton_scroller(271,69,97,NB_MODES_VIDEO,12,Debut_liste); // 6
Fenetre_Definir_bouton_scroller(271,69,97,Nb_modes_video,12,Debut_liste); // 6
// Les 12 petits boutons indiquant l'état des modes
for (Temp=0; Temp<12; Temp++)
@ -1434,14 +1431,13 @@ void Bouton_Resol(void)
default: // Boutons de tag des états des modes
Temp=Debut_liste+Bouton_clicke-7;
if (Temp) // On n'a pas le droit de cocher le mode fenêtré
if (Temp && // On n'a pas le droit de cocher le mode fenêtré
!(Mode_video[Temp].Etat & 128)) // Ni ceux non détectés par SDL
{
Temp2=(Mode_video[Temp].Etat & 0x80)?128:0;
if (Fenetre_Attribut1==A_GAUCHE)
Mode_video[Temp].Etat=Temp2+(((Mode_video[Temp].Etat&0x7F)+1)&3);
Mode_video[Temp].Etat=((Mode_video[Temp].Etat&0x7F)+1)&3;
else
Mode_video[Temp].Etat=Temp2+(((Mode_video[Temp].Etat&0x7F)+3)&3);
Mode_video[Temp].Etat=((Mode_video[Temp].Etat&0x7F)+3)&3;
Effacer_curseur();
Cocher_bouton_mode(19,16+(Bouton_clicke<<3),Mode_video[Temp].Etat);
@ -1464,7 +1460,7 @@ void Bouton_Resol(void)
if (Position_curseur<11)
Position_curseur++;
else
if (Debut_liste<NB_MODES_VIDEO-12)
if (Debut_liste<Nb_modes_video-12)
Debut_liste++;
Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
break;
@ -1485,10 +1481,10 @@ void Bouton_Resol(void)
Position_curseur=11;
else
{
if (Debut_liste<NB_MODES_VIDEO-23)
if (Debut_liste<Nb_modes_video-23)
Debut_liste+=11;
else
Debut_liste=NB_MODES_VIDEO-12;
Debut_liste=Nb_modes_video-12;
}
Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
break;
@ -1498,7 +1494,7 @@ void Bouton_Resol(void)
Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
break;
case SDLK_END : // End
Debut_liste=NB_MODES_VIDEO-12;
Debut_liste=Nb_modes_video-12;
Position_curseur=11;
Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
break;
@ -2873,7 +2869,7 @@ int Meilleur_mode_video(void)
Meilleure_hauteur=0;
for (Mode=0; Mode<=NB_MODES_VIDEO; Mode++)
for (Mode=0; Mode<Nb_modes_video; Mode++)
{
if (Mode_video[Mode].Fullscreen && Mode_video[Mode].Etat<2)
{

View File

@ -15,7 +15,7 @@
#define BETA2 0 // |
#define ALPHA_BETA "ß" // Type de la version "Þ" ou "ß"
#define DAT_DEBUT_INI_PAR_DEFAUT 0xF385 // Dans gfx2.dat, début du fichier gfx2.ini standard
#define NB_MODES_VIDEO 61 // Nombre de modes vidéo
#define MAX_MODES_VIDEO 100 // Nombre de modes vidéo maxi
#define NB_BOUTONS 38 // Nombre de boutons à gérer
#define NB_TOUCHES 134 // Nombre de combinaisons de touches
#define NB_TOUCHES_SPECIALES 72 // Nombre de touches spéciales
@ -99,7 +99,6 @@ enum CODES_D_ERREURS
ERREUR_MEMOIRE, // Plus de mémoire
ERREUR_LIGNE_COMMANDE, // Erreur sur la ligne de commande
ERREUR_DRIVER_SOURIS, // Pas de driver souris installé
ERREUR_MODE_VESA_INVALIDE, // Mode VESA demandé sur la ligne de commande invalide
ERREUR_MODE_INTERDIT, // Mode demandé sur la ligne de commande interdit (coché en noir)
ERREUR_NUMERO_MODE, // Erreur de choix de mode sur la ligne de commande
ERREUR_SAUVEGARDE_CFG, // Erreur en écriture pour GFX2.CFG

BIN
gfx2.cfg

Binary file not shown.

View File

@ -71,8 +71,9 @@ struct S_Mode_video
word Fullscreen;
byte Etat; // 0:Cool 1:OK ; 2:Bof ; 3:Naze ; si on rajoute +128 => incompatible
};
GLOBAL struct S_Mode_video Mode_video[NB_MODES_VIDEO];
GLOBAL struct S_Mode_video Mode_video[MAX_MODES_VIDEO];
GLOBAL int Nb_modes_video; // Nombre de modes réellement recensés dans Mode_video[]
GLOBAL struct
{

View File

@ -991,7 +991,7 @@ void Initialiser_mode_video(int Largeur, int Hauteur, int Fullscreen)
if (!Fullscreen)
Resolution_actuelle=0;
else
for (Indice=1; Indice<NB_MODES_VIDEO; Indice++)
for (Indice=1; Indice<Nb_modes_video; Indice++)
{
if (Mode_video[Indice].Largeur==Largeur_ecran &&
Mode_video[Indice].Hauteur==Hauteur_ecran)

208
init.c
View File

@ -1302,14 +1302,30 @@ void Initialisation_des_operations(void)
// Définition d'un mode:
void Definir_mode_video(int Numero,
short Largeur, short Hauteur,
short Largeur,
short Hauteur,
byte Mode,
word Plein_Ecran)
{
word Fullscreen)
{
byte Supporte = 0;
if (Numero >= MAX_MODES_VIDEO)
{
DEBUG("Erreur! Tentative de créer un mode de trop:", Numero);
return;
}
if (!Fullscreen)
Supporte = 128; // Prefere, non modifiable
else if (SDL_VideoModeOK(Largeur, Hauteur, 8, SDL_FULLSCREEN))
Supporte = 1; // Supporte
else
Supporte = 128+3; // Non supporte, non modifiable
Mode_video[Numero].Largeur = Largeur;
Mode_video[Numero].Hauteur = Hauteur;
Mode_video[Numero].Mode = Mode;
Mode_video[Numero].Fullscreen = Plein_Ecran;
Mode_video[Numero].Fullscreen = Fullscreen;
Mode_video[Numero].Etat = Supporte;
}
@ -1318,88 +1334,91 @@ void Definir_mode_video(int Numero,
void Definition_des_modes_video(void)
{ // Numero LargHaut Mode FXFY Ratio Ref WinOnly Pointeur
SDL_Rect** Modes;
int Indice=0;
Definir_mode_video( Indice++, 640,480,MODE_SDL, 0);
Definir_mode_video( Indice++, 320,200,MODE_SDL, 1);
Definir_mode_video( Indice++, 320,224,MODE_SDL, 1);
Definir_mode_video( Indice++, 320,240,MODE_SDL, 1);
Definir_mode_video( Indice++, 320,256,MODE_SDL, 1);
Definir_mode_video( Indice++, 320,270,MODE_SDL, 1);
Definir_mode_video( Indice++, 320,282,MODE_SDL, 1);
Definir_mode_video( Indice++, 320,300,MODE_SDL, 1);
Definir_mode_video( Indice++, 320,360,MODE_SDL, 1);
Definir_mode_video( Indice++, 320,400,MODE_SDL, 1);
Definir_mode_video( Indice++, 320,448,MODE_SDL, 1);
Definir_mode_video( Indice++, 320,480,MODE_SDL, 1);
Definir_mode_video( Indice++, 320,512,MODE_SDL, 1);
Definir_mode_video( Indice++, 320,540,MODE_SDL, 1);
Definir_mode_video( Indice++, 320,564,MODE_SDL, 1);
Definir_mode_video( Indice++, 320,600,MODE_SDL, 1);
Definir_mode_video( Indice++, 360,200,MODE_SDL, 1);
Definir_mode_video( Indice++, 360,224,MODE_SDL, 1);
Definir_mode_video( Indice++, 360,240,MODE_SDL, 1);
Definir_mode_video( Indice++, 360,256,MODE_SDL, 1);
Definir_mode_video( Indice++, 360,270,MODE_SDL, 1);
Definir_mode_video( Indice++, 360,282,MODE_SDL, 1);
Definir_mode_video( Indice++, 360,300,MODE_SDL, 1);
Definir_mode_video( Indice++, 360,360,MODE_SDL, 1);
Definir_mode_video( Indice++, 360,400,MODE_SDL, 1);
Definir_mode_video( Indice++, 360,448,MODE_SDL, 1);
Definir_mode_video( Indice++, 360,480,MODE_SDL, 1);
Definir_mode_video( Indice++, 360,512,MODE_SDL, 1);
Definir_mode_video( Indice++, 360,540,MODE_SDL, 1);
Definir_mode_video( Indice++, 360,564,MODE_SDL, 1);
Definir_mode_video( Indice++, 360,600,MODE_SDL, 1);
Definir_mode_video( Indice++, 400,200,MODE_SDL, 1);
Definir_mode_video( Indice++, 400,224,MODE_SDL, 1);
Definir_mode_video( Indice++, 400,240,MODE_SDL, 1);
Definir_mode_video( Indice++, 400,256,MODE_SDL, 1);
Definir_mode_video( Indice++, 400,270,MODE_SDL, 1);
Definir_mode_video( Indice++, 400,282,MODE_SDL, 1);
Definir_mode_video( Indice++, 400,300,MODE_SDL, 1);
Definir_mode_video( Indice++, 400,360,MODE_SDL, 1);
Definir_mode_video( Indice++, 400,400,MODE_SDL, 1);
Definir_mode_video( Indice++, 400,448,MODE_SDL, 1);
Definir_mode_video( Indice++, 400,480,MODE_SDL, 1);
Definir_mode_video( Indice++, 400,512,MODE_SDL, 1);
Definir_mode_video( Indice++, 400,540,MODE_SDL, 1);
Definir_mode_video( Indice++, 400,564,MODE_SDL, 1);
Definir_mode_video( Indice++, 400,600,MODE_SDL, 1);
Definir_mode_video( Indice++, 640,224,MODE_SDL, 1);
Definir_mode_video( Indice++, 640,240,MODE_SDL, 1);
Definir_mode_video( Indice++, 640,256,MODE_SDL, 1);
Definir_mode_video( Indice++, 640,270,MODE_SDL, 1);
//Definir_mode_video( Indice++, 640,282,MODE_SDL, 1);
Definir_mode_video( Indice++, 640,300,MODE_SDL, 1);
Definir_mode_video( Indice++, 640,350,MODE_SDL, 1);
//Definir_mode_video( Indice++, 640,360,MODE_SDL, 1);
Definir_mode_video( Indice++, 640,400,MODE_SDL, 1);
Definir_mode_video( Indice++, 640,448,MODE_SDL, 1);
Definir_mode_video( Indice++, 640,480,MODE_SDL, 1);
Definir_mode_video( Indice++, 640,512,MODE_SDL, 1);
Definir_mode_video( Indice++, 640,540,MODE_SDL, 1);
Definir_mode_video( Indice++, 640,564,MODE_SDL, 1);
Definir_mode_video( Indice++, 640,600,MODE_SDL, 1);
Definir_mode_video( Indice++, 800,600,MODE_SDL, 1);
Definir_mode_video(Indice++,1024,768,MODE_SDL, 1);
Nb_modes_video=0;
Definir_mode_video( Nb_modes_video++, 640,480,MODE_SDL, 0);
Definir_mode_video( Nb_modes_video++, 320,200,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 320,224,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 320,240,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 320,256,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 320,270,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 320,282,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 320,300,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 320,360,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 320,400,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 320,448,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 320,480,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 320,512,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 320,540,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 320,564,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 320,600,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 360,200,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 360,224,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 360,240,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 360,256,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 360,270,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 360,282,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 360,300,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 360,360,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 360,400,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 360,448,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 360,480,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 360,512,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 360,540,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 360,564,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 360,600,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 400,200,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 400,224,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 400,240,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 400,256,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 400,270,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 400,282,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 400,300,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 400,360,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 400,400,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 400,448,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 400,480,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 400,512,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 400,540,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 400,564,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 400,600,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 640,224,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 640,240,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 640,256,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 640,270,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 640,300,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 640,350,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 640,400,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 640,448,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 640,480,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 640,512,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 640,540,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 640,564,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 640,600,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++, 800,600,MODE_SDL, 1);
Definir_mode_video( Nb_modes_video++,1024,768,MODE_SDL, 1);
Modes = SDL_ListModes(NULL, SDL_FULLSCREEN);
if ((Modes != (SDL_Rect**)0) && (Modes!=(SDL_Rect**)-1))
{
int Indice;
for (Indice=0; Modes[Indice]; Indice++)
{
int Indice2;
for (Indice2=0; Indice2 < NB_MODES_VIDEO; Indice2++)
for (Indice2=1; Indice2 < Nb_modes_video; Indice2++)
if (Modes[Indice]->w == Mode_video[Indice2].Largeur &&
Modes[Indice]->h == Mode_video[Indice2].Hauteur)
{
Mode_video[Indice2].Etat = 1;
// Mode déja prévu: ok
break;
}
if (Indice2 >= Nb_modes_video)
{
// Nouveau mode à ajouter à la liste
Definir_mode_video( Nb_modes_video++,Modes[Indice]->w,Modes[Indice]->h,MODE_SDL, 1);
}
}
return;
}
}
//---------------------------------------------------------------------------
@ -1787,14 +1806,18 @@ int Charger_CFG(int Tout_charger)
!read_word_le(Handle, &CFG_Mode_video.Largeur) ||
!read_word_le(Handle, &CFG_Mode_video.Hauteur) )
goto Erreur_lecture_config;
for (Indice2=0; Indice2<NB_MODES_VIDEO; Indice2++)
for (Indice2=1; Indice2<Nb_modes_video; Indice2++)
{
if (Mode_video[Indice2].Largeur==CFG_Mode_video.Largeur &&
Mode_video[Indice2].Hauteur==CFG_Mode_video.Hauteur &&
Mode_video[Indice2].Mode==(CFG_Mode_video.Etat>>6))
Mode_video[Indice2].Hauteur==CFG_Mode_video.Hauteur)
{
Mode_video[Indice2].Etat=(Mode_video[Indice2].Etat&0xFC) | (CFG_Mode_video.Etat&3);
// On ne prend le paramètre utilisateur que si la résolution
// est effectivement supportée par SDL
// Seules les deux petits bits sont récupérés, car les anciens fichiers
// de configuration (DOS 96.5%) utilisaient d'autres bits.
if (! (Mode_video[Indice2].Etat & 128))
Mode_video[Indice2].Etat=CFG_Mode_video.Etat&3;
break;
}
}
@ -1957,6 +1980,7 @@ int Sauver_CFG(void)
FILE* Handle;
int Indice;
int Indice2;
int Modes_a_sauver;
//byte Octet;
char Nom_du_fichier[TAILLE_CHEMIN_FICHIER];
struct Config_Header CFG_Header;
@ -2007,23 +2031,31 @@ int Sauver_CFG(void)
goto Erreur_sauvegarde_config;
}
// D'abord compter les modes pour lesquels l'utilisateur a mis une préférence
Modes_a_sauver=0;
for (Indice=1; Indice<Nb_modes_video; Indice++)
if (Mode_video[Indice].Etat==0 || Mode_video[Indice].Etat==2 || Mode_video[Indice].Etat==3)
Modes_a_sauver++;
// Sauvegarde de l'état de chaque mode vidéo
Chunk.Numero=CHUNK_MODES_VIDEO;
Chunk.Taille=NB_MODES_VIDEO * sizeof(CFG_Mode_video);
Chunk.Taille=Modes_a_sauver * sizeof(CFG_Mode_video);
if (!write_byte(Handle, Chunk.Numero) ||
!write_word_le(Handle, Chunk.Taille) )
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_byte(Handle, CFG_Mode_video.Etat) ||
!write_word_le(Handle, CFG_Mode_video.Largeur) ||
!write_word_le(Handle, CFG_Mode_video.Hauteur) )
goto Erreur_sauvegarde_config;
}
for (Indice=1; Indice<Nb_modes_video; Indice++)
if (Mode_video[Indice].Etat==0 || Mode_video[Indice].Etat==2 || Mode_video[Indice].Etat==3)
{
CFG_Mode_video.Etat =Mode_video[Indice].Etat;
CFG_Mode_video.Largeur=Mode_video[Indice].Largeur;
CFG_Mode_video.Hauteur=Mode_video[Indice].Hauteur;
if (!write_byte(Handle, CFG_Mode_video.Etat) ||
!write_word_le(Handle, CFG_Mode_video.Largeur) ||
!write_word_le(Handle, CFG_Mode_video.Hauteur) )
goto Erreur_sauvegarde_config;
}
// Ecriture des données du Shade (précédées du shade en cours)
Chunk.Numero=CHUNK_SHADE;

10
main.c
View File

@ -158,9 +158,6 @@ void Erreur_fonction(int Code, const char *Nom_fichier, int Numero_ligne, const
case ERREUR_DRIVER_SOURIS : printf("Error: No mouse detected!\n");
printf("Check if a mouse driver is installed and if your mouse is correctly connected.\n");
break;
case ERREUR_MODE_VESA_INVALIDE : printf("Error: Requested VESA mode not supported by your video card!\n");
printf("You should try to run a VESA driver such as UNIVESA or UNIVBE.\n");
break;
case ERREUR_MODE_INTERDIT : printf("Error: The requested video mode has been disabled from the resolution menu!\n");
printf("If you want to run the program in this mode, you'll have to start it with an\n");
printf("enabled mode, then enter the resolution menu and enable the mode you want.\n");
@ -259,11 +256,8 @@ void Analyse_de_la_ligne_de_commande(int argc,char * argv[])
Erreur(ERREUR_LIGNE_COMMANDE);
}
if (Mode_video[Resolution_actuelle].Etat>=128)
Erreur(ERREUR_MODE_VESA_INVALIDE);
else
if (Mode_video[Resolution_actuelle].Etat==3)
Erreur(ERREUR_MODE_INTERDIT);
if ((Mode_video[Resolution_actuelle].Etat & 0x7F) == 3)
Erreur(ERREUR_MODE_INTERDIT);
}
// ------------------------ Initialiser le programme -------------------------

View File

@ -606,7 +606,7 @@ int Charger_INI(struct S_Config * Conf)
if ((Retour=Charger_INI_Get_values (Fichier,Buffer,"Default_video_mode",1,Valeurs)))
goto Erreur_Retour;
if ((Valeurs[0]<0) || (Valeurs[0]>NB_MODES_VIDEO))
if ((Valeurs[0]<0) || (Valeurs[0]>=Nb_modes_video))
goto Erreur_ERREUR_INI_CORROMPU;
Conf->Resolution_par_defaut=Valeurs[0];