# init.c File Reference

`#include <fcntl.h>`
`#include <stdio.h>`
`#include <sys/types.h>`
`#include <sys/stat.h>`
`#include <string.h>`
`#include <unistd.h>`
`#include <stdlib.h>`
`#include <errno.h>`
`#include <SDL_byteorder.h>`
`#include <SDL_image.h>`
`#include "const.h"`
`#include "struct.h"`
`#include "global.h"`
`#include "graph.h"`
`#include "boutons.h"`
`#include "palette.h"`
`#include "aide.h"`
`#include "operatio.h"`
`#include "divers.h"`
`#include "erreurs.h"`
`#include "clavier.h"`
`#include "io.h"`
`#include "hotkeys.h"`
`#include "files.h"`
`#include "setup.h"`
`#include "windows.h"`
`#include "sdlscreen.h"`
`#include "mountlist.h"`
`#include "loadsave.h"`

## Functions
void | Chercher_bas (SDL_Surface *GUI, int *Debut_X, int *Debut_Y, byte Couleur_neutre, char *Section)
void | Chercher_droite (SDL_Surface *GUI, int *Debut_X, int Debut_Y, byte Couleur_neutre, char *Section)
void | Lire_bloc (SDL_Surface *GUI, int Debut_X, int Debut_Y, void *Dest, int Largeur, int Hauteur, char *Section, int Type)
void | Lire_trame (SDL_Surface *GUI, int Debut_X, int Debut_Y, word *Dest, char *Section)
void | Charger_DAT (void)
void | Rien_du_tout (void)
void | Initialiser_bouton (byte Numero, word Decalage_X, word Decalage_Y, word Largeur, word Hauteur, byte Forme, fonction_action Gauche, fonction_action Droite, fonction_action Desenclencher, byte Famille)
void | Initialisation_des_boutons (void)
void | Initialiser_operation (byte Numero_operation, byte Numero_bouton_souris, byte Taille_de_pile, fonction_action Action, byte Effacer_curseur)
void | Initialisation_des_operations (void)
void | Definir_mode_video (short Largeur, short Hauteur, byte Mode, word Fullscreen)
int | Compare_modes_video (const void *p1, const void *p2)
void | Definition_des_modes_video (void)
int | Charger_CFG (int Tout_charger)
int | Sauver_CFG (void)
void | Initialiser_les_tables_de_multiplication (void)
void | Config_par_defaut (void)
void | Initialiser_sighandler (void)

## Function Documentation

void Chercher_bas | ( | SDL_Surface * | GUI,
|  | int * | Debut_X,
|  | int * | Debut_Y,
|  | byte | Couleur_neutre,
|  | char * | Section |
| ) |  |  |

References Erreur, ERREUR_GUI_CORROMPU, and Sdl_Get_pixel_8().

Referenced by Charger_DAT().

void Chercher_droite | ( | SDL_Surface * | GUI,
|  | int * | Debut_X,
|  | int | Debut_Y,
|  | byte | Couleur_neutre,
|  | char * | Section |
| ) |  |  |

References Erreur, ERREUR_GUI_CORROMPU, Sdl_Get_pixel_8(), and POLYGON_EDGE::w.

Referenced by Charger_DAT().

void Lire_bloc | ( | SDL_Surface * | GUI,
|  | int | Debut_X,
|  | int | Debut_Y,
|  | void * | Dest,
|  | int | Largeur,
|  | int | Hauteur,
|  | char * | Section,
|  | int | Type |
| ) |  |  |

References CM_Blanc, CM_Clair, CM_Fonce, CM_Noir, CM_Trans, Erreur, ERREUR_GUI_CORROMPU, and Sdl_Get_pixel_8().

Referenced by Charger_DAT(), and Lire_trame().

void Lire_trame | ( | SDL_Surface * | GUI,
|  | int | Debut_X,
|  | int | Debut_Y,
|  | word * | Dest,
|  | char * | Section |
| ) |  |  |

References Lire_bloc().

Referenced by Charger_DAT().

void Charger_DAT | ( | void |  | ) |

References BLOCK_MENU, Chercher_bas(), Chercher_droite(), CM_Blanc, CM_Clair, CM_Fonce, CM_Noir, CM_Trans, Curseur_Decalage_X, Curseur_Decalage_Y, Erreur, ERREUR_GUI_ABSENT, ERREUR_GUI_CORROMPU, ERREUR_MEMOIRE, Fonte, Fonte_fun, Fonte_help_bold, Fonte_help_norm, Fonte_help_t1, Fonte_help_t2, Fonte_help_t3, Fonte_help_t4, Fonte_systeme, FORME_CURSEUR_CIBLE, FORME_CURSEUR_CIBLE_FINE, FORME_CURSEUR_CIBLE_PIPETTE, FORME_CURSEUR_CIBLE_PIPETTE_FINE, FORME_CURSEUR_FLECHE, FORME_CURSEUR_HORIZONTAL, FORME_CURSEUR_MULTIDIRECTIONNEL, FORME_CURSEUR_SABLIER, FORME_PINCEAU_ALEATOIRE, FORME_PINCEAU_ANTISLASH, FORME_PINCEAU_BARRE_HORIZONTALE, FORME_PINCEAU_BARRE_VERTICALE, FORME_PINCEAU_CARRE, FORME_PINCEAU_CARRE_TRAME, FORME_PINCEAU_DIVERS, FORME_PINCEAU_LOSANGE, FORME_PINCEAU_PLUS, FORME_PINCEAU_ROND, FORME_PINCEAU_ROND_TRAME, FORME_PINCEAU_SLASH, FORME_PINCEAU_X, HAUTEUR_MENU, HAUTEUR_PINCEAU, HAUTEUR_SPRITE_CURSEUR, HAUTEUR_SPRITE_DRIVE, HAUTEUR_SPRITE_MENU, LARGEUR_MENU, LARGEUR_PINCEAU, LARGEUR_SPRITE_CURSEUR, LARGEUR_SPRITE_DRIVE, LARGEUR_SPRITE_MENU, Lire_bloc(), Lire_trame(), Logo_GrafX2, NB_SPRITES_CURSEUR, NB_SPRITES_DRIVES, NB_SPRITES_EFFETS, NB_SPRITES_MENU, NB_SPRITES_PINCEAU, NB_TRAMES_PREDEFINIES, Palette_defaut, Pinceau_predefini_Decalage_X, Pinceau_predefini_Decalage_Y, Pinceau_predefini_Hauteur, Pinceau_predefini_Largeur, Pinceau_Type, Position_d_aide_en_cours, Repertoire_des_donnees, Sdl_Get_pixel_8(), Section_d_aide_en_cours, SPRITE_CURSEUR, SPRITE_DRIVE, SPRITE_EFFET, SPRITE_MENU, SPRITE_PINCEAU, TAILLE_CHEMIN_FICHIER, and TRAME_PREDEFINIE.

Referenced by Initialisation_du_programme().

void Rien_du_tout | ( | void |  | ) |

Referenced by Initialisation_des_boutons().

void Initialiser_bouton | ( | byte | Numero,
|  | word | Decalage_X,
|  | word | Decalage_Y,
|  | word | Largeur,
|  | word | Hauteur,
|  | byte | Forme,
|  | fonction_action | Gauche,
|  | fonction_action | Droite,
|  | fonction_action | Desenclencher,
|  | byte | Famille |
| ) |  |  |

References Bouton.

Referenced by Initialisation_des_boutons().

void Initialisation_des_boutons | ( | void |  | ) |

References Bouton, Bouton_Aide(), BOUTON_AIDE, Bouton_Ajuster(), BOUTON_AJUSTER, Bouton_Autosave(), Bouton_Brosse(), BOUTON_BROSSE, Bouton_Brosse_monochrome(), Bouton_Brush_FX(), BOUTON_CACHER, Bouton_Cacher_menu(), Bouton_Cercle_degrade(), Bouton_Cercle_plein(), Bouton_Cercle_vide(), BOUTON_CERCLES, BOUTON_CHARGER, Bouton_Choix_backcolor(), BOUTON_CHOIX_COL, Bouton_Choix_forecolor(), Bouton_Clear(), BOUTON_CLEAR, Bouton_Clear_colore(), Bouton_Copy_page(), Bouton_Courbes(), BOUTON_COURBES, Bouton_Courbes_Switch_mode(), Bouton_Degrades(), Bouton_desenclencher_Brosse(), Bouton_desenclencher_Fill(), Bouton_desenclencher_Lasso(), Bouton_desenclencher_Loupe(), Bouton_desenclencher_Pipette(), Bouton_Dessin(), BOUTON_DESSIN, Bouton_Dessin_Switch_mode(), Bouton_Effets(), BOUTON_EFFETS, BOUTON_EFFETS_BROSSE, Bouton_Ellipse_degrade(), Bouton_Ellipse_pleine(), Bouton_Ellipse_vide(), Bouton_Fill(), BOUTON_FILLCERC, Bouton_Filled_polyform(), BOUTON_FILLRECT, BOUTON_FLOODFILL, BOUTON_GRADMENU, BOUTON_GRADRECT, Bouton_Inverser_foreback(), Bouton_Kill(), BOUTON_KILL, Bouton_Lasso(), Bouton_Lignes(), BOUTON_LIGNES, Bouton_Lignes_Switch_mode(), Bouton_Load(), Bouton_Loupe(), BOUTON_LOUPE, Bouton_Menu_Loupe(), Bouton_Menu_pinceaux(), Bouton_Page(), BOUTON_PAGE, Bouton_Pal_left(), BOUTON_PAL_LEFT, Bouton_Pal_left_fast(), Bouton_Pal_right(), BOUTON_PAL_RIGHT, Bouton_Pal_right_fast(), Bouton_Palette(), BOUTON_PALETTE, Bouton_Palette_secondaire(), BOUTON_PARAMETRES, BOUTON_PINCEAUX, Bouton_Pipette(), BOUTON_PIPETTE, BOUTON_POLYBROSSE, Bouton_Polyfill(), BOUTON_POLYFILL, Bouton_Polyform(), Bouton_Polygone(), BOUTON_POLYGONES, Bouton_Quit(), BOUTON_QUIT, Bouton_Rectangle_degrade(), Bouton_Rectangle_plein(), Bouton_Rectangle_vide(), BOUTON_RECTANGLES, Bouton_Redo(), Bouton_Reload(), Bouton_Remplacer(), Bouton_Resol(), BOUTON_RESOL, Bouton_Restaurer_brosse(), Bouton_Safety_resol(), BOUTON_SAUVER, Bouton_Save(), Bouton_Settings(), BOUTON_SPHERES, Bouton_Spray(), BOUTON_SPRAY, Bouton_Spray_Menu(), Bouton_Stats(), Bouton_Texte(), BOUTON_TEXTE, Bouton_Undo(), BOUTON_UNDO, FAMILLE_EFFETS, FAMILLE_INSTANTANE, FAMILLE_INTERRUPTION, FAMILLE_OUTIL, FAMILLE_TOOLBAR, FORME_BOUTON_RECTANGLE, FORME_BOUTON_SANS_CADRE, FORME_BOUTON_TRIANGLE_BAS_DROITE, FORME_BOUTON_TRIANGLE_HAUT_GAUCHE, Initialiser_bouton(), LARGEUR_MENU, Message_Non_disponible(), NB_BOUTONS, and Rien_du_tout().

Referenced by Initialisation_du_programme().

void Initialiser_operation | ( | byte | Numero_operation,
|  | byte | Numero_bouton_souris,
|  | byte | Taille_de_pile,
|  | fonction_action | Action,
|  | byte | Effacer_curseur |
| ) |  |  |

References Operation.

Referenced by Initialisation_des_operations().

void Initialisation_des_operations | ( | void |  | ) |

References Bouton, Brosse_0_5(), Brosse_12_0(), Brosse_12_5(), Cercle_12_0(), Cercle_12_5(), Cercle_degrade_0_6(), Cercle_degrade_12_0(), Cercle_degrade_12_6(), Cercle_degrade_12_8(), Cercle_ou_ellipse_degrade_0_8(), Cercle_plein_0_5(), Cercle_vide_0_5(), Courbe_34_points_1_0(), Courbe_34_points_1_5(), Courbe_34_points_2_0(), Courbe_34_points_2_5(), Courbe_3_points_0_11(), Courbe_3_points_0_5(), Courbe_3_points_12_11(), Courbe_4_points_0_5(), Courbe_4_points_1_9(), Courbe_4_points_2_9(), Ellipse_12_0(), Ellipse_12_5(), Ellipse_degradee_0_6(), Ellipse_degradee_12_0(), Ellipse_degradee_12_6(), Ellipse_degradee_12_8(), Ellipse_pleine_0_5(), Ellipse_vide_0_5(), Etirer_brosse_0_7(), Etirer_brosse_12_0(), Etirer_brosse_1_7(), Etirer_brosse_2_7(), Fill_1_0(), Fill_2_0(), Filled_contour_0_8(), Filled_polyform_0_8(), Filled_polyform_12_0(), Filled_polyform_12_8(), Freehand_Mode12_0_2(), Freehand_Mode1_1_0(), Freehand_Mode1_1_2(), Freehand_Mode1_2_0(), Freehand_Mode1_2_2(), Freehand_Mode2_1_0(), Freehand_Mode2_1_2(), Freehand_Mode2_2_0(), Freehand_Mode2_2_2(), Freehand_Mode3_0_1(), Freehand_Mode3_1_0(), Freehand_Mode3_2_0(), Initialiser_operation(), K_Ligne_0_6(), K_Ligne_12_0(), K_Ligne_12_6(), K_Ligne_12_7(), Ligne_0_5(), Ligne_12_0(), Ligne_12_5(), Lignes_centrees_0_3(), Lignes_centrees_0_7(), Lignes_centrees_12_0(), Lignes_centrees_12_3(), Lignes_centrees_12_7(), Loupe_12_0(), NB_OPERATIONS, OPERATION_CERCLE_DEGRADE, OPERATION_CERCLE_PLEIN, OPERATION_CERCLE_VIDE, OPERATION_COURBE_3_POINTS, OPERATION_COURBE_4_POINTS, OPERATION_DESSIN_CONTINU, OPERATION_DESSIN_DISCONTINU, OPERATION_DESSIN_POINT, OPERATION_ELLIPSE_DEGRADEE, OPERATION_ELLIPSE_PLEINE, OPERATION_ELLIPSE_VIDE, OPERATION_ETIRER_BROSSE, OPERATION_FILL, OPERATION_FILLED_CONTOUR, OPERATION_FILLED_POLYFORM, OPERATION_K_LIGNE, OPERATION_LIGNE, OPERATION_LIGNES_CENTREES, OPERATION_LOUPE, OPERATION_PIPETTE, OPERATION_POLYBROSSE, OPERATION_POLYFILL, OPERATION_POLYFORM, OPERATION_POLYGONE, OPERATION_PRISE_BROSSE, OPERATION_RECTANGLE_DEGRADE, OPERATION_RECTANGLE_PLEIN, OPERATION_RECTANGLE_VIDE, OPERATION_REMPLACER, OPERATION_SCROLL, OPERATION_SPRAY, OPERATION_TOURNER_BROSSE, Pipette_0_1(), Pipette_12_0(), Pipette_1_1(), Pipette_2_1(), Pipette_Couleur, Polybrosse_12_8(), Polyfill_0_8(), Polyfill_12_0(), Polyfill_12_8(), Polyfill_12_9(), Polyform_0_8(), Polyform_12_0(), Polyform_12_8(), Polygone_12_0(), Polygone_12_9(), Print_coordonnees(), Rectangle_12_0(), Rectangle_12_5(), Rectangle_Degrade_0_5(), Rectangle_Degrade_0_7(), Rectangle_Degrade_0_9(), Rectangle_Degrade_12_0(), Rectangle_Degrade_12_5(), Rectangle_Degrade_12_7(), Rectangle_Degrade_12_9(), Rectangle_plein_0_5(), Rectangle_vide_0_5(), Remplacer_1_0(), Remplacer_2_0(), Scroll_0_4(), Scroll_12_0(), Scroll_12_4(), Spray_0_2(), Spray_12_2(), Spray_1_0(), Spray_2_0(), TAILLE_PILE_OPERATIONS, Tourner_brosse_0_5(), Tourner_brosse_12_0(), Tourner_brosse_1_5(), and Tourner_brosse_2_5().

Referenced by Initialisation_du_programme().

void Definir_mode_video | ( | short | Largeur,
|  | short | Hauteur,
|  | byte | Mode,
|  | word | Fullscreen |
| ) |  |  |

References DEBUG, S_Mode_video::Etat, S_Mode_video::Fullscreen, S_Mode_video::Hauteur, S_Mode_video::Largeur, MAX_MODES_VIDEO, S_Mode_video::Mode, Mode_video, and Nb_modes_video.

Referenced by Definition_des_modes_video().

int Compare_modes_video | ( | const void * | p1,
|  | const void * | p2 |
| ) |  |  |

References S_Mode_video::Hauteur, and S_Mode_video::Largeur.

Referenced by Definition_des_modes_video().

void Definition_des_modes_video | ( | void |  | ) |

References Compare_modes_video(), Definir_mode_video(), Hauteur, Largeur, Mode_video, and Nb_modes_video.

Referenced by Initialisation_du_programme().

int Charger_CFG | ( | int | Tout_charger | ) |

References BETA1, Config_Header::Beta1, BETA2, Config_Header::Beta2, Bouton, CHUNK_DEGRADES, CHUNK_EXCLUDE_COLORS, CHUNK_GRILLE, CHUNK_MASQUE, CHUNK_MODES_VIDEO, CHUNK_QUICK_SHADE, CHUNK_SHADE, CHUNK_SMOOTH, CHUNK_STENCIL, CHUNK_TOUCHES, Config_Touche, ConfigTouche, Degrade_Charger_infos_du_tableau(), Degrade_Courant, Degrade_Tableau, ERREUR_CFG_ABSENT, ERREUR_CFG_ANCIEN, ERREUR_CFG_CORROMPU, Config_Mode_video::Etat, Exclude_color, S_Mode_video::Hauteur, Config_Mode_video::Hauteur, Largeur, Config_Mode_video::Largeur, Liste2tables(), Mask_table, Mode_video, Nb_modes_video, NB_TOUCHES, Config_Infos_touche::Numero, Config_Chunk::Numero, Ordonnancement, Quick_shade_Loop, Quick_shade_Step, read_byte(), read_bytes(), read_dword_le(), read_word_le(), Repertoire_de_configuration, Shade_Actuel, Shade_Liste, Shade_Table_droite, Shade_Table_gauche, Config_Header::Signature, Smooth_Matrice, Snap_Decalage_X, Snap_Decalage_Y, Snap_Hauteur, Snap_Largeur, Stencil, Config_Chunk::Taille, TAILLE_CHEMIN_FICHIER, Config_Infos_touche::Touche, Config_Infos_touche::Touche2, Touche_pour_scancode(), VERSION1, Config_Header::Version1, VERSION2, and Config_Header::Version2.

Referenced by Initialisation_du_programme(), and Settings_Charger_config().

int Sauver_CFG | ( | void |  | ) |

References BETA1, Config_Header::Beta1, BETA2, Config_Header::Beta2, Bouton, CHUNK_DEGRADES, CHUNK_EXCLUDE_COLORS, CHUNK_GRILLE, CHUNK_MASQUE, CHUNK_MODES_VIDEO, CHUNK_QUICK_SHADE, CHUNK_SHADE, CHUNK_SMOOTH, CHUNK_STENCIL, CHUNK_TOUCHES, Config_Touche, ConfigTouche, Degrade_Courant, Degrade_Tableau, ERREUR_SAUVEGARDE_CFG, S_Mode_video::Etat, Config_Mode_video::Etat, Exclude_color, S_Mode_video::Hauteur, Config_Mode_video::Hauteur, S_Mode_video::Largeur, Config_Mode_video::Largeur, Mask_table, Mode_video, Nb_modes_video, NB_TOUCHES, S_ConfigTouche::Numero, Config_Infos_touche::Numero, Config_Chunk::Numero, Ordonnancement, Quick_shade_Loop, Quick_shade_Step, Repertoire_de_configuration, Shade_Actuel, Shade_Liste, Config_Header::Signature, Smooth_Matrice, Snap_Decalage_X, Snap_Decalage_Y, Snap_Hauteur, Snap_Largeur, Stencil, Config_Chunk::Taille, TAILLE_CHEMIN_FICHIER, Config_Infos_touche::Touche, Config_Infos_touche::Touche2, VERSION1, Config_Header::Version1, VERSION2, Config_Header::Version2, write_byte(), write_bytes(), write_dword_le(), and write_word_le().

Referenced by Fermeture_du_programme(), and Settings_Sauver_config().

void Initialiser_les_tables_de_multiplication | ( | void |  | ) |

References FACTEUR_ZOOM, NB_FACTEURS_DE_ZOOM, and TABLE_ZOOM.

Referenced by Initialisation_du_programme().

void Config_par_defaut | ( | void |  | ) |

References Bouton, Config_Touche, ConfigTouche, T_Degrade_Tableau::Debut, Degrade_Charger_infos_du_tableau(), Degrade_Courant, Degrade_Tableau, Exclude_color, T_Degrade_Tableau::Fin, T_Degrade_Tableau::Inverse, Liste2tables(), Mask_table, T_Degrade_Tableau::Melange, T_Shade::Mode, NB_TOUCHES, Ordonnancement, T_Shade::Pas, Quick_shade_Loop, Quick_shade_Step, Shade_Actuel, Shade_Liste, Shade_Table_droite, Shade_Table_gauche, Smooth_Matrice, Snap_Decalage_X, Snap_Decalage_Y, Snap_Hauteur, Snap_Largeur, Stencil, T_Degrade_Tableau::Technique, S_ConfigTouche::Touche, and S_ConfigTouche::Touche2.

Referenced by Initialisation_du_programme().

void Initialiser_sighandler | ( | void |  | ) |

Referenced by Initialisation_du_programme().