From 54b4f5a1211f24126adf103519ad46b24dcb1be3 Mon Sep 17 00:00:00 2001 From: Yves Rizoud Date: Sun, 5 Oct 2008 19:10:46 +0000 Subject: [PATCH] Resolution and window size remembered in gfx2.ini. Gfx2.ini now uses hosts' end-of-line character(s) Removed Gfx2.ini from SVN, since it's automatically re-created from Gfx2.dat as needed. git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@202 416bcca6-2ee7-4201-b75f-2eb2f807beb1 --- const.h | 1 - gfx2.dat | Bin 78544 -> 78440 bytes gfx2.ini | 289 ------------------------------------------------------ graph.c | 22 ++++- graph.h | 1 + main.c | 178 +++++++++++++-------------------- readini.c | 82 ++++++++++++++-- saveini.c | 113 ++++++++++++++++++++- 8 files changed, 272 insertions(+), 414 deletions(-) delete mode 100644 gfx2.ini diff --git a/const.h b/const.h index 37f99027..1e811ea6 100644 --- a/const.h +++ b/const.h @@ -100,7 +100,6 @@ enum CODES_D_ERREURS ERREUR_LIGNE_COMMANDE, // Erreur sur la ligne de commande ERREUR_DRIVER_SOURIS, // Pas de driver souris installé 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 ERREUR_REPERTOIRE_DISPARU, // Le répertoire de lancement n'existe plus ERREUR_INI_CORROMPU, // Le fichier GFX2.INI est corrompu diff --git a/gfx2.dat b/gfx2.dat index 2c380b40d290ecc394751f71f00a44e1442ab021..3c7d94661958d81c123c57ebb4a1bb47c699baaf 100644 GIT binary patch delta 1989 zcmZ`(Yitx%6waaB*Y>qQOSh%l-fr7{wA+2PAO%s70)6auiQp4t9lF!9vO7~}rUevI z;0MN6YBIu&35daj5F`TrGQ?m)H2x9^Ch`N+L-jeAB{b;cI8Vtjn?Szj9KCOV60QWG8WN;<56Bx zPTpKa7)T~WzkXuesb3g(BINFPR9`vKsgF$b=s!(#>E6kRJ~Y{*e~nW*)v0fsis_%? zOigv`UDMtA{^^K*WjeO6g(CZQQFPxq>g0B!F5XKN<)?_c`6N+{M`uACG{ntW)WaXo zB3Dk(Yh~;OzATHJSJ{iEc6)fu+SpD+X5$=;m0f#AS=IYLD|M^h;7-_ z#y`tOG0LG;yd#JFd@F51V(1*a5u$juQ<)W9CJoM6+ zM@#tOJn+1ohpxQ&n2?%}37yG@t;mX2)?29tz3sH3kFTt>faA6TRRCEfOBz^(P}7qT z`-H)i#zJ0W99;#p3@PsxApKGSusnqn;LjIQkiTh&(-83AEW`!06~Vu^2)O5qXaz4V zCfqb{D@N)Y#eh6l44PB|Hfu_7K_8XC@n;Dbw%Op_Wg{=bkK5oMx1mzUZ1}&OPZj*c zY+A^#8K13lAok2b_JuhpmOYnN^XOb!!#^~{t+~K%D+Tt>QhLH%J$|*6?0l+}>I#ij zjl`C>clN9{mes+dWmF8rjb*5LybOr<%g~#59<-r(=;y4VVSg7jV?@gbH94+|T3iuT zIW?#yWeF3L}4FRBn?bzl~X?*(1~UZh=N|XsA?=FN}8Wn*I`%?l{{5P<)FT|4*ma7hlGZD zs)r#`55oaN{85iK7dK#WUTwg3ecoU`>l+PlEp|b?y@3A33tLMgv^|Xozt9NG{3i0)Fp;%FpQvrm zynB_0>d6k08=5e`BTaz1-Gqi3eAEc*(>^30_Thdn`KTF&f@VZK+YIZGX1uhE&C~>I zwjV(24DqoaxTAjf+XILk31s#s0A98rtS=klWDt?lh87Fq|KaTrg*GYJ#HS4jJQDL*yDZLp`b}GHtWSQc2v!rtM4_l%%B8Z`u&b*bbJso)#2E z=ogu1NKPs&C79776D8=`kDS;?rC64^}H za2l+J#9o$i%LC?{Gb2%HhJM_nA2;bQMNugsZ++-VW=wdNCi-(`081o+s^ST&ezp#M zJs@Rv(*CcLC3d1`f%S>f4NWmyF@eldikKGDn?yy;Oh&+DGFVJaz9t&Y?3hWsZoG{L Zd^0g|BL)v;VQbLWx+wS%;~5(${{u{^YTy6> delta 2243 zcmZuxTWnNS6wPjD`j~dw(&rTVIP+j0op$=b3P@CtG6jLQfEpqx&4u2Uv7Nci%pIVL z;R8(6V2Do2NhKO${1D+oV-Q1#h8QB@!^p!2KPD&@4a6TyTUrY4v!*3rY?HI^*?XOJ z)_%VzG0SIH{>iZ0QqFO2DmLLy857>r%5hJI+n$P!calAIcD!>w-g3u3|H)8} z9lz6=W4F15&+QAPXxx=@PIw&Pp@PAh3O5vmd2)1n-*L1wtty&-tTPRDVDvwxj{qJehWToYN zDqtZJ$L<*znc3BKAq z@DJue-dB0l$P#Ym5f6;4$cJfX1MJ>>^zYkzU<>V#yVXvs8GF>uO;gNY+d-ID0G*o( zkne#4By*_%EfB4je3Ml{rUlFj$BHVJW2-t!JIN7}byHC?*GVKf( z)XqY_DW)zqg(WaOB@p>Z2}Is1p=WqlwV8n2TuKgxy;4eU9y=xca4EGy!1+>KQd|ZB z+sjarchb9SWhjBCT*W{%T26%(s^F`VrqPqo&7QcPFb0!m#E8jDRaBB4GklogAIp)L zyMos8%>xzG&QAu9nlKINv{8-xxq_S=nW}*1RSw|Za?lcXo^@dKZaC(8QC10cS|w_D zq7vnqu7vXTh1eZg2(8x_;#a~ItduQ_=t(BqwFpYSTm;-`6;(-R6*Y5Ya}|onE;Z=q z*vwVu7ROPY>T1Z+tI3P~p=#WDtr|_ptD$yML^G;P1@Go~!9!qR1wa|s@Ip(;}@;KOe6;L-s%+-K4z*MqEI@}QoFJQ(52 z9%=+OV==Is(&pG=$hp0k{C1U2SWB2auNp>FjfVpVmV42vgI-Ae-bi)S81I~R?Z|Vj=^o;r;`lcVTr2*{T2!P;f09tKztCOjF|E0Q{j7f|F$}e+2DHza9_C z#d-=NI#CZ{Z4EH*H9+le4Zt>saPqa#+@PNfA+x(7MAtUL$VQwT!w${tZlYqYgV97S ze)W4+zpIX9bcY@nMxQWu>0d7B`ba!k^G}oEVHG zOtE8Fn8QPnSpPoJ`&U$p$F+W4_;(wTxER!gg6Kkz2~!)=VrH7l)!(#|3C I)x^)szaJqp!2kdN diff --git a/gfx2.ini b/gfx2.ini deleted file mode 100644 index 6d386988..00000000 --- a/gfx2.ini +++ /dev/null @@ -1,289 +0,0 @@ -###### GrafX2 initialization file ###### Fichier d'initialisation de GrafX2 ## -# # # # -# You may modify this file with any # Vous pouvez modifier ce fichier avec # -# standard ASCII text editor. # n'importe quel éditeur de texte # -# # ASCII standard. # -# # # -# Comments are preceded by ';' or # Les commentaires sont précédés par # -# '#'. # ';' ou '#'. # -# # # -# Options are not case sensitive and # Les options ne sont pas sensibles à # -# spaces are ignored. # la casse et les espaces sont ignorés.# -# # # -# You must not change the order of # Vous ne devez pas changer l'ordre # -# the sections and their options. # des sections et de leurs options. # -# You must not delete or put into # Vous ne devez pas effacer ou mettre # -# comment any section nor option. # en commentaire une section ou option.# -# # # -# Each option is preceded by a # Chaque option est précédée par un # -# comment which explains its meaning. # commentaire qui explique sa fonction.# -# # # -############################################################################## - - - -[MOUSE] # [SOURIS] - - ; The sensitivity of the mouse can | La sensibilité de la souris peut - ; take values from 1 to 64. The | prendre des valeurs de 1 à 64. Plus - ; smaller values, the faster. | les valeurs sont petites, plus c'est - ; | rapide. - X_sensitivity = 1 ; (default 3) - Y_sensitivity = 1 ; (default 3) - - ; Due to the fact that those stupid | A cause du fait que ces imbéciles de - ; mouse drivers' makers don't care | programmeurs de gestionnaires de - ; if the mouse moves by steps of 2, | souris se fichent que votre souris se - ; 4 or even 8 pixels, we have to | deplace par pas de 2, 4 ou même 8 - ; stretch the virtual area of the | pixels, nous devons élargir la zone - ; mouse and divide coordinates to | virtuelle de la souris et diviser les - ; get a one-pixel step motion. | coordonnées pour obtenir un pas de 1. - ; (Warning: the mouse movement can | (Attention: le déplacement de la - ; be correct in some video modes | souris peut être correct dans certains - ; but not in others... But all the | modes vidéos mais pas dans d'autres... - ; "Modes X" should behave the same | Mais tout les Modes X devraient se - ; way, so you won't have to test | comporter de la même manière, donc - ; them all). | vous n'aurez pas à tous les tester. - ; A correction factor of 0 means | Un facteur de correction de 0 signifie - ; that you are very lucky because | que vous avez de la chace car votre - ; your driver doesn't need any | driver n'a pas besoin de correction. - ; correction. If you set the | Si vous définissez le facteur de - ; correction factor to 1, it means | correction à 1, cela signifie que - ; that your mouse moves by steps of | votre souris se déplace par pas de 2 - ; 2 pixels; 2 for 4; 3 for 8, etc...| pixels; 2 pour 4; 3 pour 8, etc... - ; If you want to use GrafX2 in a | Si vous désirez lancer GrafX2 dans une - ; Win95 window, you should turn | fenêtre Windows95, vous devriez passer - ; these values to 0 (and increase X | ces valeurs à 0 (et augmenter les sen- - ; and Y sensitivities above). | sibilités X et Y définies plus haut). - X_correction_factor = 0 ; (default 3) - Y_correction_factor = 0 ; (default 3) - - ; Aspect of the main cursor (cross) | Aspect du curseur principal (croix) - ; 1: Solid | 1: Solide - ; 2: Transparent | 2: Transparent - ; 3: Thin (solid) | 3: Fin (solide) - Cursor_aspect = 3 ; (default 1) - - - -[MENU] # [MENU] - - ; Colors of the menus (the black | Couleurs des menus (la couleur noire - ; and the white colors cannot be | et la couleur blanche ne peuvent pas - ; modified). | être modifiées). - ; Values are in {Red,Green,Blue} | Les valeurs sont dans l'ordre {Rouge, - ; order and are between 0 and 63. | Vert,Bleu} et vont de 0 à 63. - Light_color = 42,42,42 ; (default 42,42,42) - Dark_color = 27,27,27 ; (default 27,27,27) - ; - ; Light_color = 24,25,30 ; \_ Nightmare - ; Dark_color = 13,14,19 ; / - ; - ; Light_color = 10,45,28 ; \_ Forest - ; Dark_color = 5,27,12 ; / - ; - ; Light_color = 48,41,26 ; \_ Gold - ; Dark_color = 26,22,15 ; / - ; - ; Light_color = 10,40,55 ; \_ Oceanic - ; Dark_color = 10,20,32 ; / - - ; Aspect ratio and size of the | Proportion des menus et de la barre - ; menus and the tool-bar. | d'outils. - ; Possible values: | Valeurs possibles: - ; 0: Do not adapt (pixels are not | 0: Ne pas adapter (les pixels ne sont - ; stretched) | pas étirés) - ; 1: Adapt the menus and the tool- | 1: Adapter les menus et la barre - ; bar according to the resolution| d'outils suivant la résolution - ; 2: Slightly adapt the ratio of | 2: Adapter légèrement les proportions - ; the menus and tool-bar | des menus et de la barre d'outils - Menu_ratio = 1 ; (default 1) - - ; Font: | Police de caractères (fonte): - ; 1: Classic | 1: Classique - ; 2: Fun | 2: Fun - Font = 2 ; (default 1) - - - -[FILE_SELECTOR] # [SELECTEUR_DE_FICHIERS] - - ; Show special files and | Afficher les fichiers et répertoires - ; directories (values are 'yes' or | spéciaux (les valeurs sont 'yes' ou - ; 'no'). | 'no'). - Show_hidden_files = no ; (default 'no') - Show_hidden_directories = no ; (default 'no') - Show_system_directories = no ; (default 'no') - - ; Delay before displaying a preview | Délai avant d'afficher une preview - ; in file-selectors (in 18.2th of | dans les sélecteurs de fichiers (en - ; second). Possible values range | 18.2èmes de seconde) Les valeurs - ; from 1 to 256. | possibles vont de 1 à 256. - Preview_delay = 8 ; (default 8) - - ; Maximize the preview of the | Maximiser la preview des images pour - ; pictures so that it is as big as | qu'elle soit aussi grande que - ; possible. If you're not in the | possible. - ; same resolution as the picture's | Si vous n'êtes pas dans la même réso- - ; one, it can try to correct the | lution que celle de l'image, cela peut - ; aspect ratio, but if the picture | essayer de corriger les proportions, - ; does not fill the whole screen, | mais si l'image ne prend pas tout - ; it can be worse. | l'écran, cela peut être pire. - Maximize_preview = yes ; (default 'no') - - ; This option is used to place the | Cette option est utilisée pour placer - ; selection bar on a filename by | la barre de sélection sur un nom de - ; typing its first letters. | fichier en tapant ses 1ères lettres. - ; For example, if you want to find | Par exemple, si vous voulez trouver le - ; the "PICTURE.PKM" in a directory | fichier "PICTURE.PKM" dans un réper- - ; that also contains "PALETTE.PAL", | toire contenant également le fichier - ; you'll just have to type P and I. | "PALETTE.PAL", vous n'aurez qu'à taper - ; The different values of "FFF" | P puis I. - ; indicate if you want to find the | Les different valeurs de "FFF" - ; name in both files and directories| indiquent si vous voulez trouvez le nom - ; or just in only one of these: | dans les fichiers ET les répertoires ou - ; 0: files and directories | simplement dans l'un OU l'autre. - ; 1: files only | 0: fichiers et répertoires - ; 2: directories only | 1: fichiers seulement - ; | 2: répertoires seulement - Find_file_fast = 0 ; (default 0) - - -[LOADING] # [CHARGEMENT] - - ; Automatically set the resolution | Passer automatiquement dans la bonne - ; when loading a picture. | résolution lors du chargement d'une - ; You should set this value to | image. - ; 'yes' after disabling the video | Vous devriez définir cette option à - ; modes that are not supported by | 'yes' après avoir inhibé les modes - ; your video card or monitor. | vidéo qui ne sont pas supportés par - ; | votre matériel. - Auto_set_resolution = yes ; (default 'no') - - ; If the variable above is set to | Si la variable ci-dessus est à 'yes', - ; 'yes', this one tells if you want | celle-ci indique si vous voulez - ; to set the resolution according | définir la résolution suivant: - ; to: | 1: les dimensions de "l'écran - ; 1: the internal "original screen" | d'origine" internes à l'image - ; dimensions of the picture | 2: les véritables dimensions de - ; 2: the actual dimensions of the | l'image - ; picture | - Set_resolution_according_to = 1 ; (default 1) - - ; If you load a picture with a | Si vous chargez une image ayant une - ; palette of less than 256 colors, | palette de moins de 256 couleurs, - ; this option defines if you want | cette option indique si vous souhaitez - ; to clear the palette or to keep | effacer la palette ou bien conserver - ; the colors of the previous | les couleurs de l'image précédente qui - ; picture that are over the number | se situent au-delà du nombre de la - ; of colors of the new picture. | nouvelle image. - ; For example, if you load a | Par exemple, si vous chargez une image - ; 32-color picture, the colors 32 | de 32 couleurs, les couleurs 32 à 255 - ; to 255 will be set to black if | seront passées en noir si cette option - ; this option is set to 'yes', or | est à 'yes', ou bien elles resteront - ; they will be kept unchanged if | inchangées si elle est à 'no'. - ; this option is set to 'no'. | - Clear_palette = yes ; (default 'yes') - - -[MISCELLANEOUS] # [DIVERS] - - ; Draw the limits of the picture. | Afficher les limites de l'image - Draw_limits = yes ; (default 'yes') - - ; Adjust the brush grabbing in | Ajuster la capture de brosse en mode - ; "grid" mode. | "grille". - Adjust_brush_pick = yes ; (default 'yes') - - ; Coordinates: | Coordonnées: - ; 1: Relative | 1: Relatives - ; 2: Absolute | 2: Absolues - Coordinates = 2 ; (default 1) - - ; Create a backup file when saving. | Créer un fichier backup lors des - ; | sauvegardes. - Backup = no ; (default 'no') - - ; Number of pages stored in memory | Nombre de pages stockées en mémoire - ; for "undoing". | destinées à annuler les dernières - ; Values are between 1 and 99. | modifications. Valeurs entre 1 et 99. - Undo_pages = 1 ; (default 1) - - ; Speed of the scroll-bars (in VBLs | Vitesse des barre de défilement (en - ; waited) while clicking with the | VBLs attendus) lorsque l'un des - ; left or right button of the mouse.| boutons de la souris est enfoncé. - ; Values can be between 1 and 255. | Les valeurs sont comprises entre 1 et - ; The bigger values, the slower. | 255. Plus elles sont grandes, plus - ; | c'est lent. - Gauges_scrolling_speed_Left = 10 ; (default 10) - Gauges_scrolling_speed_Right = 3 ; (default 3) - - ; Automatically save the configu- | Enregistre automatiquement la configu- - ; ration when exiting the program. | ration lorsqu'on quitte le programme. - Auto_save = yes ; (default 'yes') - - ; Maximum number of vertices used | Nombre maximum de vertex utilisés dans - ; in filled polygons and polyforms, | les polygônes et polyformes pleins, et - ; and lasso. Possible values range | le lasso. Les valeurs possibles vont - ; from 2 to 16384. | de 2 à 16384. - ; Each vertex takes 4 bytes. | Chaque vertex prend 4 octets. - Vertices_per_polygon = 1024 ; (default 1024) - - ; Automatically zoom into the | Zoomer automatiquement la zone pointée - ; pointed area when you press the | par la souris lorsque vous appuyez sur - ; short-key of the Magnifier button | la touche de raccourci de la loupe. - ; while being above the picture. | - Fast_zoom = yes ; (default 'yes') - - ; Separate the colors in the tool- | Séparer les couleurs dans la barre - ; bar by a black squaring. | d'outils par un quadrillage noir. - Separate_colors = no ; (default 'yes') - - ; Initial value of the feedback for | Valeur initiale du "feedback" pour les - ; the drawing modes (cf. docs). | modes de dessin (cf. docs). - FX_feedback = yes ; (default 'yes') - - ; When you reduce the palette or | Si vous réduisez la palette ou "zappez" - ; "zap" some colors out of it, it is| quelques couleurs, il est possible - ; possible that there are not enough| qu'il ne reste pas assez de couleurs - ; colors left to draw the menus. | pour afficher les menus. Mettre cette - ; Switching the following variable | variable à 'yes' ramènera automatiquent - ; on will bring back the colors of | les couleurs du menu s'il reste moins - ; the menu if there are less than 4 | de 4 couleurs après une "réduction" ou - ; colors left after "reducing" or | un "zapping". - ; "zapping". | - Safety_colors = no ; (default 'yes') - - ; Display a message at startup | Afficher un message au démarrage - ; telling the version number of the | indiquant le numéro de version du - ; program. | programme. - Opening_message = yes ; (default 'yes') - - ; Take the Stencil into account when| Prendre le Stencil en compte lorsqu'on - ; clearing the image. | efface l'image. - Clear_with_stencil = yes ; (default 'yes') - - ; Directly set the discontinuous | Passer automatiquement en mode de - ; freehand drawing mode after brush | dessin discontinu après la prise d'une - ; grabbing. | brosse. - Auto_discontinuous = no ; (default 'no') - - ; Save the screen dimensions in GIF | Sauver les dimensions de l'écran dans - ; files. If you want to read these | les fichiers GIF. Si vous voulez lire - ; files with Photoshop or Alchemy, | ces fichiers avec Photoshop ou Alchemy, - ; and maybe some other programs, you| et peut-être d'autres programmes, vous - ; must set this option to 'no'. | devez mettre cette option à 'no'. - Save_screen_size_in_GIF = no ; (default 'no') - - ; Automaticaly count the number of | Compter automatiquement le nombre de - ; different colors used when opening| couleurs différentes utilisées lors de - ; the palette editor window. (Set it| d'ouverture de la fenêtre d'édition de - ; to 'no' if you have a slow PC or | la palette. (Mettez-le à 'no' si vous - ; if you edit huge pictures) | avez un PC lent ou bien si vous éditez - ; | d'énormes images). - Auto_nb_colors_used = yes ; (default 'yes') - - ; Number of the default video mode | Numéro du mode vidéo par défaut au - ; at startup (see the list by typing| démarrage (voir la liste en tapant - ; "gfx2 /?" at the DOS prompt). | "gfx2 /?" sur la ligne de commande). - Default_video_mode = 0 ; (default 0) diff --git a/graph.c b/graph.c index 0b738b71..4ba0cada 100644 --- a/graph.c +++ b/graph.c @@ -893,14 +893,27 @@ void Afficher_limites_de_l_image(void) // Fonction retournant le libellé d'une mode (ex: " 320x200") char * Libelle_mode(int Mode) { - static char Chaine[9]; + static char Chaine[24]; + if (! Mode_video[Mode].Fullscreen) + return "window"; + sprintf(Chaine, "%dx%d", Mode_video[Mode].Largeur, Mode_video[Mode].Hauteur); - Num2str(Mode_video[Mode].Largeur,Chaine,4); - Chaine[4]='x'; - Num2str(Mode_video[Mode].Hauteur,Chaine+5,3); return Chaine; } +// Trouve un mode video à partir d'une chaine: soit "window", +// soit de la forme "320x200" +// Renvoie -1 si la chaine n'est pas convertible +int Conversion_argument_mode(const char *Argument) +{ + // Je suis paresseux alors je vais juste tester les libellés + int Indice_mode; + for (Indice_mode=0; Indice_mode> 3; Menu_Ordonnee = Hauteur_ecran; diff --git a/graph.h b/graph.h index 1e141b01..af551126 100644 --- a/graph.h +++ b/graph.h @@ -27,6 +27,7 @@ void Calculer_limites(void); void Calculer_coordonnees_pinceau(void); char* Libelle_mode(int Mode); +int Conversion_argument_mode(const char *Argument); void Initialiser_mode_video(int Largeur, int Hauteur, int Fullscreen); void Pixel_dans_barre_d_outil(word X,word Y,byte Couleur); diff --git a/main.c b/main.c index 53e69e32..f909938c 100644 --- a/main.c +++ b/main.c @@ -39,69 +39,14 @@ byte Ancien_nb_lignes; // Ancien nombre de lignes de l' //--- Affichage de la syntaxe, et de la liste des modes vidéos disponibles --- void Afficher_syntaxe(void) { - printf("Syntax: GFX2 [] [