Made it compile under windows with Open Watcom

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@66 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Adrien Destugues 2008-07-27 21:04:12 +00:00
parent ae9a534ad8
commit b2f9193e85
22 changed files with 10132 additions and 9389 deletions

52
aide.c
View File

@ -8,7 +8,11 @@
#include <string.h> #include <string.h>
#include <sys/vfs.h> #ifdef __linux__
#include <sys/vfs.h>
#elif __WATCOMC__
#include <windows.h>
#endif
// -- Menu d'aide ----------------------------------------------------------- // -- Menu d'aide -----------------------------------------------------------
@ -199,13 +203,20 @@ void Bouton_Stats(void)
short Bouton_clicke; short Bouton_clicke;
char Buffer[37]; char Buffer[37];
dword Utilisation_couleur[256]; dword Utilisation_couleur[256];
unsigned long long Taille; unsigned long long freeRam;
struct statfs Informations_Disque;
#ifdef __linux__
struct statfs Informations_Disque;
unsigned long long Taille = 0;
#elif __WATCOMC__
unsigned __int64 Taille;
ULARGE_INTEGER tailleU;
#endif
Ouvrir_fenetre(310,174,"Statistics"); Ouvrir_fenetre(310,174,"Statistics");
// dessiner de la fenˆtre o— va s'afficher le texte // Dessin de la fenetre ou va s'afficher le texte
Fenetre_Afficher_cadre_creux(8,17,294,132); Fenetre_Afficher_cadre_creux(8,17,294,132);
Block(Fenetre_Pos_X+(Menu_Facteur_X*9), Block(Fenetre_Pos_X+(Menu_Facteur_X*9),
Fenetre_Pos_Y+(Menu_Facteur_Y*18), Fenetre_Pos_Y+(Menu_Facteur_Y*18),
@ -219,33 +230,42 @@ void Bouton_Stats(void)
Print_dans_fenetre(82,19,Buffer,STATS_COULEUR_DONNEES,CM_Noir); Print_dans_fenetre(82,19,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
// Affichage de la mémoire restante // Affichage de la mémoire restante
Print_dans_fenetre(10,35,"Free memory:",STATS_COULEUR_TITRES,CM_Noir); Print_dans_fenetre(10,35,"Free memory: ",STATS_COULEUR_TITRES,CM_Noir);
unsigned long long freeRam = Memoire_libre();
freeRam = Memoire_libre();
if(freeRam > (100ULL*1024*1024*1024)) if(freeRam > (100ULL*1024*1024*1024))
sprintf(Buffer,"%d Gigabytes",(unsigned int)(freeRam/(1024*1024*1024))); sprintf(Buffer,"%d Gigabytes",(unsigned int)(freeRam/(1024*1024*1024)));
else if(freeRam > (100*1024*1024)) else if(freeRam > (100*1024*1024))
sprintf(Buffer,"%d Megabytes",(unsigned int)(freeRam/(1024*1024))); sprintf(Buffer,"%d Megabytes",(unsigned int)(freeRam/(1024*1024)));
else if(freeRam > 100*1024) else if(freeRam > 100*1024)
sprintf(Buffer,"%d Kilobytes",(unsigned int)(freeRam/1024)); sprintf(Buffer,"%d Kilobytes",(unsigned int)(freeRam/1024));
else else
sprintf(Buffer,"%d bytes",(unsigned int)freeRam); sprintf(Buffer,"%d bytes",(unsigned int)freeRam);
Print_dans_fenetre(114,35,Buffer,STATS_COULEUR_DONNEES,CM_Noir); Print_dans_fenetre(114,35,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
// Affichage de l'espace disque libre // Affichage de l'espace disque libre
sprintf(Buffer,"Free space on %c:",Principal_Repertoire_courant[0]); sprintf(Buffer,"Free space on %c:",Principal_Repertoire_courant[0]);
Print_dans_fenetre(10,51,Buffer,STATS_COULEUR_TITRES,CM_Noir); Print_dans_fenetre(10,51,Buffer,STATS_COULEUR_TITRES,CM_Noir);
statfs(Principal_Repertoire_courant,&Informations_Disque);
Taille=Informations_Disque.f_bfree * Informations_Disque.f_bsize; #ifdef __linux__
statfs(Principal_Repertoire_courant,&Informations_Disque);
Taille=Informations_Disque.f_bfree * Informations_Disque.f_bsize;
#elif __WATCOMC__
GetDiskFreeSpaceEx(Principal_Repertoire_courant,&tailleU,NULL,NULL);
Taille = tailleU.QuadPart;
#endif
if (Taille>=0) if (Taille>=0)
{ {
if(Taille > (100ULL*1024*1024*1024)) if(Taille > (100ULL*1024*1024*1024))
sprintf(Buffer,"%d Gigabytes",(unsigned int)(Taille/(1024*1024*1024))); sprintf(Buffer,"%d Gigabytes",(unsigned int)(Taille/(1024*1024*1024)));
else if(Taille > (100*1024*1024)) else if(Taille > (100*1024*1024))
sprintf(Buffer,"%d Megabytes",(unsigned int)(Taille/(1024*1024))); sprintf(Buffer,"%d Megabytes",(unsigned int)(Taille/(1024*1024)));
else if(Taille > (100*1024)) else if(Taille > (100*1024))
sprintf(Buffer,"%d Kilobytes",(unsigned int)(Taille/1024)); sprintf(Buffer,"%d Kilobytes",(unsigned int)(Taille/1024));
else else
sprintf(Buffer,"%d bytes",(unsigned int)Taille); sprintf(Buffer,"%d bytes",(unsigned int)Taille);
Print_dans_fenetre(146,51,Buffer,STATS_COULEUR_DONNEES,CM_Noir); Print_dans_fenetre(146,51,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
} }
else else

View File

@ -21,6 +21,12 @@
#include "pages.h" #include "pages.h"
#include "erreurs.h" #include "erreurs.h"
#ifdef __WATCOMC__
#include <windows.h>
#define chdir(x) SetCurrentDirectory(x)
#define rmdir(x) DeleteFile(x)
#endif
//-- MODELE DE BOUTON DE MENU ------------------------------------------------ //-- MODELE DE BOUTON DE MENU ------------------------------------------------
/* /*
void Bouton_***(void) void Bouton_***(void)
@ -122,7 +128,7 @@ void Bouton_Message_initial(void)
Print_dans_fenetre( 7,128,"file before using this program",CM_Fonce,CM_Clair); Print_dans_fenetre( 7,128,"file before using this program",CM_Fonce,CM_Clair);
Print_dans_fenetre( 7,136,"for the first time.",CM_Fonce,CM_Clair); Print_dans_fenetre( 7,136,"for the first time.",CM_Fonce,CM_Clair);
if ((*ALPHA_BETA)=='Ó') if ((*ALPHA_BETA)=='á')
{ {
Print_char_transparent_dans_fenetre(43,119,'M',CM_Noir); Print_char_transparent_dans_fenetre(43,119,'M',CM_Noir);
Print_char_transparent_dans_fenetre(53,121,'U',CM_Noir); Print_char_transparent_dans_fenetre(53,121,'U',CM_Noir);
@ -1190,7 +1196,7 @@ void Cocher_bouton_mode(short Pos_X, short Pos_Y, byte Etat)
} }
Block(Fenetre_Pos_X+Menu_Facteur_X*Pos_X,Fenetre_Pos_Y+Menu_Facteur_Y*Pos_Y, Block(Fenetre_Pos_X+Menu_Facteur_X*Pos_X,Fenetre_Pos_Y+Menu_Facteur_Y*Pos_Y,
Menu_Facteur_X*9,Menu_Facteur_Y*3,Couleur); Menu_Facteur_X*9,Menu_Facteur_Y*3,Couleur);
SDL_UpdateRect(Ecran_SDL,Fenetre_Pos_X+Menu_Facteur_X*Pos_X,Fenetre_Pos_Y+Menu_Facteur_Y*Pos_Y, SDL_UpdateRect(Ecran_SDL,Fenetre_Pos_X+Menu_Facteur_X*Pos_X,Fenetre_Pos_Y+Menu_Facteur_Y*Pos_Y,
Menu_Facteur_X*9,Menu_Facteur_Y*3); Menu_Facteur_X*9,Menu_Facteur_Y*3);
} }
@ -1685,7 +1691,7 @@ void Degrade_Dessiner_bouton_de_technique(short Pos_X,short Pos_Y,int Technique)
} }
SDL_UpdateRect(Ecran_SDL,Fenetre_Pos_X+((Pos_X+2)*Menu_Facteur_X),Fenetre_Pos_Y+((Pos_Y+2)*Menu_Facteur_Y), SDL_UpdateRect(Ecran_SDL,Fenetre_Pos_X+((Pos_X+2)*Menu_Facteur_X),Fenetre_Pos_Y+((Pos_Y+2)*Menu_Facteur_Y),
Menu_Facteur_X*10,Menu_Facteur_Y*10); Menu_Facteur_X*10,Menu_Facteur_Y*10);
} }
void Degrade_Charger_infos_du_tableau(int Indice) void Degrade_Charger_infos_du_tableau(int Indice)
@ -2105,12 +2111,12 @@ void Print_repertoire_courant(void)
// le reste de la chaine (Ouaaaaaah!!! Vachement fort le mec!!) // le reste de la chaine (Ouaaaaaah!!! Vachement fort le mec!!)
for (Indice++;Indice<Longueur;Indice++) for (Indice++;Indice<Longueur;Indice++)
if ( (Principal_Repertoire_courant[Indice]=='\\') && if ( (Principal_Repertoire_courant[Indice]=='\\') &&
(Longueur-Indice<=TAILLE_MAXI_PATH-6) ) (Longueur-Indice<=TAILLE_MAXI_PATH-6) )
{ {
// Ouf: on vient de trouver un endroit dans la chaîne à partir duquel // Ouf: on vient de trouver un endroit dans la chaîne à partir duquel
// on peut faire la copie: // on peut faire la copie:
strcpy(Nom_temporaire+6,Principal_Repertoire_courant+Indice); strcpy(Nom_temporaire+6,Principal_Repertoire_courant+Indice);
break; break;
} }
// Enfin, on peut afficher la chaîne tronquée // Enfin, on peut afficher la chaîne tronquée
@ -2449,7 +2455,7 @@ byte Bouton_Load_ou_Save(byte Load, byte Image)
do do
{ {
puts("boutons.c 2454\n"); puts("boutons.c 2454\n");
//Etat_Du_Clavier=SDL_GetKeyState(Bidon); //Etat_Du_Clavier=SDL_GetKeyState(Bidon);
} while ((Etat_Du_Clavier[SDLK_y]==0) && (Etat_Du_Clavier[SDLK_n]==0) && (Etat_Du_Clavier[SDLK_ESCAPE]==0)); } while ((Etat_Du_Clavier[SDLK_y]==0) && (Etat_Du_Clavier[SDLK_n]==0) && (Etat_Du_Clavier[SDLK_ESCAPE]==0));
@ -2584,7 +2590,7 @@ byte Bouton_Load_ou_Save(byte Load, byte Image)
break; break;
case 8 : // Saisie du nom de fichier case 8 : // Saisie du nom de fichier
Effacer_curseur(); Effacer_curseur();
if (Readline(202,73,Principal_Nom_fichier,12,2)) if (Readline(202,73,Principal_Nom_fichier,12,2))
{ {
// On regarde s'il faut rajouter une extension. C'est-à-dire s'il // On regarde s'il faut rajouter une extension. C'est-à-dire s'il
// n'y a pas de '.' dans le nom du fichier. // n'y a pas de '.' dans le nom du fichier.
@ -2597,10 +2603,10 @@ byte Bouton_Load_ou_Save(byte Load, byte Image)
if (Principal_Format) if (Principal_Format)
strcat(Principal_Nom_fichier,Format_Extension[Principal_Format-1]); strcat(Principal_Nom_fichier,Format_Extension[Principal_Format-1]);
} }
On_a_clicke_sur_OK=1; On_a_clicke_sur_OK=1;
} }
Afficher_curseur(); Afficher_curseur();
break; break;
default : // Drives default : // Drives
Effacer_curseur(); Effacer_curseur();
// On change de lecteur: Lecteur = Drive[Bouton_clicke-9].Lettre-64 // On change de lecteur: Lecteur = Drive[Bouton_clicke-9].Lettre-64

View File

@ -158,12 +158,3 @@ void Menu_Tag_couleurs(char * En_tete, byte * Table, byte * Mode, byte Cancel);
void Bouton_Smooth_Menu(void); void Bouton_Smooth_Menu(void);
void Bouton_Smear_Mode(void); void Bouton_Smear_Mode(void);
// -- Gestion du chrono --
byte Etat_chrono; // Etat du chrono: 0=Attente d'un Xème de seconde
// 1=Il faut afficher la preview
// 2=Plus de chrono à gerer pour l'instant
long Chrono_delay; // Nombre de 18.2ème de secondes demandés
long Chrono_cmp; // Heure de départ du chrono
byte Nouvelle_preview; // Booléen "Il faut relancer le chrono de preview"
// Les fonctions de manipulation du chrono se trouvent dans DIVERS.ASM

644
divers.c
View File

@ -5,12 +5,14 @@
#include "graph.h" //Afficher_curseur #include "graph.h" //Afficher_curseur
#include "erreurs.h" #include "erreurs.h"
#include "boutons.h" #include "boutons.h"
#include "moteur.h"
#include "divers.h"
// Gestion du mode texte de départ (pour pouvoir y retourner en cas de problème // Gestion du mode texte de départ (pour pouvoir y retourner en cas de problème
byte Recuperer_nb_lignes(void) byte Recuperer_nb_lignes(void)
{ {
puts("Recuperer_nb_lignes non implémenté!\n"); puts("Recuperer_nb_lignes non implémenté!\n");
return 0; return 0;
} }
word Palette_Compter_nb_couleurs_utilisees(dword* Tableau) word Palette_Compter_nb_couleurs_utilisees(dword* Tableau)
@ -38,8 +40,8 @@ word Palette_Compter_nb_couleurs_utilisees(dword* Tableau)
//On va maintenant compter dans la table les couleurs utilisées: //On va maintenant compter dans la table les couleurs utilisées:
for(i=0;i<256;i++) for(i=0;i<256;i++)
{ {
if (Tableau[i]!=0) if (Tableau[i]!=0)
Nombre_Couleurs++; Nombre_Couleurs++;
} }
return Nombre_Couleurs; return Nombre_Couleurs;
@ -47,15 +49,15 @@ word Palette_Compter_nb_couleurs_utilisees(dword* Tableau)
void Set_palette(T_Palette Palette) void Set_palette(T_Palette Palette)
{ {
register int i; register int i;
SDL_Color PaletteSDL[256]; SDL_Color PaletteSDL[256];
for(i=0;i<256;i++) for(i=0;i<256;i++)
{ {
PaletteSDL[i].r=Palette[i].R*4; //Les couleurs VGA ne vont que de 0 à 63 PaletteSDL[i].r=Palette[i].R*4; //Les couleurs VGA ne vont que de 0 à 63
PaletteSDL[i].g=Palette[i].V*4; PaletteSDL[i].g=Palette[i].V*4;
PaletteSDL[i].b=Palette[i].B*4; PaletteSDL[i].b=Palette[i].B*4;
} }
SDL_SetPalette(Ecran_SDL,SDL_PHYSPAL|SDL_LOGPAL,PaletteSDL,0,256); SDL_SetPalette(Ecran_SDL,SDL_PHYSPAL|SDL_LOGPAL,PaletteSDL,0,256);
} }
void Attendre_fin_de_click(void) void Attendre_fin_de_click(void)
@ -77,15 +79,14 @@ void Effacer_image_courante_Stencil(byte Couleur, byte * Pochoir)
int Nombre_De_Pixels=0; //ECX int Nombre_De_Pixels=0; //ECX
//al=Couleur //al=Couleur
//edi=Ecran //edi=Ecran
Uint8* Pixel_Courant=Ecran; //dl byte* Pixel_Courant=Ecran; //dl
int i; int i;
Nombre_De_Pixels=Principal_Hauteur_image*Principal_Largeur_image; Nombre_De_Pixels=Principal_Hauteur_image*Principal_Largeur_image;
for(i=0;i<Nombre_De_Pixels;i++) for(i=0;i<Nombre_De_Pixels;i++)
{ {
if (Pochoir[*Pixel_Courant]==0)
if (Pochoir[*Pixel_Courant]==0);
*Pixel_Courant=Couleur; *Pixel_Courant=Couleur;
Pixel_Courant++; Pixel_Courant++;
} }
@ -95,15 +96,15 @@ void Effacer_image_courante(byte Couleur)
// Effacer l'image courante avec une certaine couleur // Effacer l'image courante avec une certaine couleur
{ {
memset( memset(
Principal_Ecran , Principal_Ecran ,
Couleur , Couleur ,
Principal_Largeur_image * Principal_Hauteur_image Principal_Largeur_image * Principal_Hauteur_image
); );
} }
void Sensibilite_souris(word X,word Y) void Sensibilite_souris(word X,word Y)
{ {
puts("Sensibilite_souris non implémenté!"); puts("Sensibilite_souris non implémenté!");
} }
void Get_input(void) void Get_input(void)
@ -116,112 +117,115 @@ void Get_input(void)
if( SDL_PollEvent(&event)) /* Il y a un évènement en attente */ if( SDL_PollEvent(&event)) /* Il y a un évènement en attente */
{ {
switch( event.type) switch( event.type)
{ {
case SDL_MOUSEMOTION: case SDL_MOUSEMOTION:
//Mouvement de la souris //Mouvement de la souris
INPUT_Nouveau_Mouse_X = event.motion.x>>Mouse_Facteur_de_correction_X; INPUT_Nouveau_Mouse_X = event.motion.x>>Mouse_Facteur_de_correction_X;
INPUT_Nouveau_Mouse_Y = event.motion.y>>Mouse_Facteur_de_correction_Y; INPUT_Nouveau_Mouse_Y = event.motion.y>>Mouse_Facteur_de_correction_Y;
break; break;
case SDL_MOUSEBUTTONDOWN: case SDL_MOUSEBUTTONDOWN:
//Clic sur un des boutons de la souris //Clic sur un des boutons de la souris
INPUT_Nouveau_Mouse_K=event.button.button; INPUT_Nouveau_Mouse_K=event.button.button;
break; break;
case SDL_MOUSEBUTTONUP: case SDL_MOUSEBUTTONUP:
//Bouton souris relaché //Bouton souris relaché
INPUT_Nouveau_Mouse_K=0; INPUT_Nouveau_Mouse_K=0;
break; break;
case SDL_KEYDOWN: case SDL_KEYDOWN:
//Appui sur une touche du clavier {
byte ok = 0;
//Appui sur une touche du clavier
//On met le scancode dans Touche" //On met le scancode dans Touche"
Touche = event.key.keysym.scancode; Touche = event.key.keysym.scancode;
//...et le code ASCII dans Touche_ASCII //...et le code ASCII dans Touche_ASCII
Touche_ASCII=event.key.keysym.sym; Touche_ASCII=event.key.keysym.sym;
//On ajoute aussi l'état des modifiers //On ajoute aussi l'état des modifiers
#define ekkm event.key.keysym.mod #define ekkm event.key.keysym.mod
if (ekkm & (KMOD_LSHIFT | KMOD_RSHIFT)) if (ekkm & (KMOD_LSHIFT | KMOD_RSHIFT))
{ {
Touche |= 0x0100; Touche |= 0x0100;
} }
if (ekkm & (KMOD_LCTRL | KMOD_RCTRL)) if (ekkm & (KMOD_LCTRL | KMOD_RCTRL))
{ {
Touche |= 0x0200; Touche |= 0x0200;
} }
if (ekkm & (KMOD_LALT | KMOD_RALT)) if (ekkm & (KMOD_LALT | KMOD_RALT))
{ {
Touche |= 0x0400; Touche |= 0x0400;
} }
#undef ekkm #undef ekkm
//TODO revoir les scancodes qui sont dans le tableau
//Config_Touche, ça correspond à rien !
//Cas particulier: déplacement du curseur avec haut bas gauche droite
//On doit interpréter ça comme un mvt de la souris
if(Touche == Config_Touche[0])
{
//[Touche] = Emulation de MOUSE UP
//si on est déjà en haut on peut plus bouger
if(INPUT_Nouveau_Mouse_Y!=0)
{
INPUT_Nouveau_Mouse_Y--;
ok=1;
}
}
else if(Touche == Config_Touche[1])
{
//[Touche] = Emulation de MOUSE DOWN
if(INPUT_Nouveau_Mouse_Y<Hauteur_ecran-1)
{
INPUT_Nouveau_Mouse_Y++;
ok=1;
}
}
else if(Touche == Config_Touche[2])
{
//[Touche] = Emulation de MOUSE LEFT
if(INPUT_Nouveau_Mouse_X!=0)
{
INPUT_Nouveau_Mouse_X--;
ok=1;
}
}
else if(Touche == Config_Touche[3])
{
//[Touche] = Emulation de MOUSE RIGHT
//TODO revoir les scancodes qui sont dans le tableau if(INPUT_Nouveau_Mouse_X<Largeur_ecran-1)
//Config_Touche, ça correspond à rien ! {
INPUT_Nouveau_Mouse_X++;
ok=1;
}
}
else if(Touche == Config_Touche[4])
{
//[Touche] = Emulation de MOUSE CLICK LEFT
INPUT_Nouveau_Mouse_K=1;
ok=1;
}
else if(Touche == Config_Touche[5])
{
//[Touche] = Emulation de MOUSE CLICK RIGHT
INPUT_Nouveau_Mouse_K=2;
ok=1;
}
//Cas particulier: déplacement du curseur avec haut bas gauche droite if(ok)
//On doit interpréter ça comme un mvt de la souris {
byte ok=0; SDL_WarpMouse(
if(Touche == Config_Touche[0]) INPUT_Nouveau_Mouse_X<<Mouse_Facteur_de_correction_X,
{ INPUT_Nouveau_Mouse_Y<<Mouse_Facteur_de_correction_Y
//[Touche] = Emulation de MOUSE UP );
//si on est déjà en haut on peut plus bouger }
if(INPUT_Nouveau_Mouse_Y!=0) }
{ break;
INPUT_Nouveau_Mouse_Y--; }
ok=1;
}
}
else if(Touche == Config_Touche[1])
{
//[Touche] = Emulation de MOUSE DOWN
if(INPUT_Nouveau_Mouse_Y<Hauteur_ecran-1)
{
INPUT_Nouveau_Mouse_Y++;
ok=1;
}
}
else if(Touche == Config_Touche[2])
{
//[Touche] = Emulation de MOUSE LEFT
if(INPUT_Nouveau_Mouse_X!=0)
{
INPUT_Nouveau_Mouse_X--;
ok=1;
}
}
else if(Touche == Config_Touche[3])
{
//[Touche] = Emulation de MOUSE RIGHT
if(INPUT_Nouveau_Mouse_X<Largeur_ecran-1)
{
INPUT_Nouveau_Mouse_X++;
ok=1;
}
}
else if(Touche == Config_Touche[4])
{
//[Touche] = Emulation de MOUSE CLICK LEFT
INPUT_Nouveau_Mouse_K=1;
ok=1;
}
else if(Touche == Config_Touche[5])
{
//[Touche] = Emulation de MOUSE CLICK RIGHT
INPUT_Nouveau_Mouse_K=2;
ok=1;
}
if(ok)
{
SDL_WarpMouse(
INPUT_Nouveau_Mouse_X<<Mouse_Facteur_de_correction_X,
INPUT_Nouveau_Mouse_Y<<Mouse_Facteur_de_correction_Y
);
}
break;
}
} }
//Gestion "avancée" du curseur: interdire la descente du curseur dans le //Gestion "avancée" du curseur: interdire la descente du curseur dans le
@ -229,88 +233,88 @@ void Get_input(void)
if(Operation_Taille_pile!=0) if(Operation_Taille_pile!=0)
{ {
byte bl=0;//BL va indiquer si on doit corriger la position du curseur byte bl=0;//BL va indiquer si on doit corriger la position du curseur
//Si le curseur ne se trouve plus dans l'image //Si le curseur ne se trouve plus dans l'image
if(Menu_Ordonnee<INPUT_Nouveau_Mouse_Y) if(Menu_Ordonnee<INPUT_Nouveau_Mouse_Y)
{ {
//On bloque le curseur en fin d'image //On bloque le curseur en fin d'image
bl++; bl++;
INPUT_Nouveau_Mouse_Y=Menu_Ordonnee-1; //La ligne !!au-dessus!! du menu INPUT_Nouveau_Mouse_Y=Menu_Ordonnee-1; //La ligne !!au-dessus!! du menu
} }
if(Loupe_Mode) if(Loupe_Mode)
{ {
if(Operation_dans_loupe==0) if(Operation_dans_loupe==0)
{ {
if(INPUT_Nouveau_Mouse_X>=Principal_Split) if(INPUT_Nouveau_Mouse_X>=Principal_Split)
{ {
bl++; bl++;
INPUT_Nouveau_Mouse_X=Principal_Split-1; INPUT_Nouveau_Mouse_X=Principal_Split-1;
} }
} }
else else
{ {
if(INPUT_Nouveau_Mouse_X<Principal_X_Zoom) if(INPUT_Nouveau_Mouse_X<Principal_X_Zoom)
{ {
bl++; bl++;
INPUT_Nouveau_Mouse_X=Principal_X_Zoom; INPUT_Nouveau_Mouse_X=Principal_X_Zoom;
} }
} }
} }
if (bl) if (bl)
{ {
SDL_WarpMouse( SDL_WarpMouse(
INPUT_Nouveau_Mouse_X<<Mouse_Facteur_de_correction_X, INPUT_Nouveau_Mouse_X<<Mouse_Facteur_de_correction_X,
INPUT_Nouveau_Mouse_Y<<Mouse_Facteur_de_correction_Y INPUT_Nouveau_Mouse_Y<<Mouse_Facteur_de_correction_Y
); );
} }
if (Touche != 0) if (Touche != 0)
{ {
//Enfin, on inhibe les touches (sauf si c'est un changement de couleur //Enfin, on inhibe les touches (sauf si c'est un changement de couleur
//ou de taille de pinceau lors d'une des operations suivantes: //ou de taille de pinceau lors d'une des operations suivantes:
//OPERATION_DESSIN_CONTINU, OPERATION_DESSIN_DISCONTINU, OPERATION_SPRAY) //OPERATION_DESSIN_CONTINU, OPERATION_DESSIN_DISCONTINU, OPERATION_SPRAY)
if(Autoriser_changement_de_couleur_pendant_operation) if(Autoriser_changement_de_couleur_pendant_operation)
{ {
//A ce stade là, on sait qu'on est dans une des 3 opérations //A ce stade là, on sait qu'on est dans une des 3 opérations
//supportant le changement de couleur ou de taille de pinceau. //supportant le changement de couleur ou de taille de pinceau.
if( if(
(Touche != Config_Touche[6]) && (Touche != Config_Touche[6]) &&
(Touche != Config_Touche[7]) && (Touche != Config_Touche[7]) &&
(Touche != Config_Touche[8]) && (Touche != Config_Touche[8]) &&
(Touche != Config_Touche[9]) && (Touche != Config_Touche[9]) &&
(Touche != Config_Touche[10]) && (Touche != Config_Touche[10]) &&
(Touche != Config_Touche[11]) && (Touche != Config_Touche[11]) &&
(Touche != Config_Touche[12]) && (Touche != Config_Touche[12]) &&
(Touche != Config_Touche[13]) && (Touche != Config_Touche[13]) &&
(Touche != Config_Touche[14]) && (Touche != Config_Touche[14]) &&
(Touche != Config_Touche[15]) (Touche != Config_Touche[15])
) )
{ {
Touche=0; Touche=0;
} }
} }
else Touche = 0; else Touche = 0;
} }
} }
if ( if (
(INPUT_Nouveau_Mouse_X != Mouse_X) || (INPUT_Nouveau_Mouse_X != Mouse_X) ||
(INPUT_Nouveau_Mouse_Y != Mouse_Y) || (INPUT_Nouveau_Mouse_Y != Mouse_Y) ||
(INPUT_Nouveau_Mouse_K != Mouse_K) (INPUT_Nouveau_Mouse_K != Mouse_K)
) )
{ {
Forcer_affichage_curseur=0; Forcer_affichage_curseur=0;
Effacer_curseur(); // On efface le curseur AVANT de le déplacer... Effacer_curseur(); // On efface le curseur AVANT de le déplacer...
Mouse_X=INPUT_Nouveau_Mouse_X; Mouse_X=INPUT_Nouveau_Mouse_X;
Mouse_Y=INPUT_Nouveau_Mouse_Y; Mouse_Y=INPUT_Nouveau_Mouse_Y;
Mouse_K=INPUT_Nouveau_Mouse_K; Mouse_K=INPUT_Nouveau_Mouse_K;
Calculer_coordonnees_pinceau(); Calculer_coordonnees_pinceau();
Afficher_curseur(); Afficher_curseur();
} }
} }
@ -326,44 +330,44 @@ void Initialiser_chrono(dword Delai)
void Wait_VBL(void) void Wait_VBL(void)
// Attente de VBL. Pour avoir des scrollbars qui ont une vitesse raisonnable par exemple. SDL ne sait pas faire ? // Attente de VBL. Pour avoir des scrollbars qui ont une vitesse raisonnable par exemple. SDL ne sait pas faire ?
{ {
puts("Wait_VBL non implémenté!"); puts("Wait_VBL non implémenté!");
} }
void Passer_en_mode_texte(byte Nb_lignes) void Passer_en_mode_texte(byte Nb_lignes)
{ {
SDL_Quit(); //Ceci sera appellé à chaque sortie de mode vidéo == sortie du programme. le Nb_Lignes serait à enlever, cela dit, SDL s'en occupe très bien tout seul. SDL_Quit(); //Ceci sera appellé à chaque sortie de mode vidéo == sortie du programme. le Nb_Lignes serait à enlever, cela dit, SDL s'en occupe très bien tout seul.
} }
void Pixel_dans_brosse (word X,word Y,byte Couleur) void Pixel_dans_brosse (word X,word Y,byte Couleur)
{ {
puts("Pixel_dans_brosse non implémenté!"); puts("Pixel_dans_brosse non implémenté!");
} }
byte Lit_pixel_dans_brosse (word X,word Y) byte Lit_pixel_dans_brosse (word X,word Y)
{ {
puts("Lit_pixel_dans_brosse non implémenté!"); puts("Lit_pixel_dans_brosse non implémenté!");
return 0; return 0;
} }
void Clavier_de_depart(void) void Clavier_de_depart(void)
{ {
puts("Clavier_de_depart non implémenté!"); puts("Clavier_de_depart non implémenté!");
} }
void Clavier_americain(void) void Clavier_americain(void)
{ {
puts("Clavier_americain non implémenté!"); puts("Clavier_americain non implémenté!");
} }
word Detection_souris(void) word Detection_souris(void)
{ {
puts("Detection_souris non implémenté!"); puts("Detection_souris non implémenté!");
return 0; return 0;
} }
byte Lit_pixel_dans_ecran_courant (word X,word Y) byte Lit_pixel_dans_ecran_courant (word X,word Y)
{ {
return *(Principal_Ecran+Y*Principal_Largeur_image+X); return *(Principal_Ecran+Y*Principal_Largeur_image+X);
} }
void Pixel_dans_ecran_courant (word X,word Y,byte Couleur) void Pixel_dans_ecran_courant (word X,word Y,byte Couleur)
@ -374,65 +378,65 @@ void Pixel_dans_ecran_courant (word X,word Y,byte Couleur)
void Remplacer_une_couleur(byte Ancienne_couleur, byte Nouvelle_couleur) void Remplacer_une_couleur(byte Ancienne_couleur, byte Nouvelle_couleur)
{ {
UNIMPLEMENTED UNIMPLEMENTED
} }
void Ellipse_Calculer_limites(short Rayon_horizontal,short Rayon_vertical) void Ellipse_Calculer_limites(short Rayon_horizontal,short Rayon_vertical)
{ {
UNIMPLEMENTED UNIMPLEMENTED
} }
byte Pixel_dans_ellipse(void) byte Pixel_dans_ellipse(void)
{ {
UNIMPLEMENTED UNIMPLEMENTED
return 0; return 0;
} }
byte Pixel_dans_cercle(void) byte Pixel_dans_cercle(void)
{ {
if((Table_des_carres[abs(Cercle_Curseur_X)] + if((Table_des_carres[abs(Cercle_Curseur_X)] +
Table_des_carres[abs(Cercle_Curseur_Y)] ) <= Cercle_Limite) Table_des_carres[abs(Cercle_Curseur_Y)] ) <= Cercle_Limite)
return 255; return 255;
return 0; return 0;
} }
void Copier_une_partie_d_image_dans_une_autre(byte * Source,word S_Pos_X,word S_Pos_Y,word Largeur,word Hauteur,word Largeur_source,byte * Destination,word D_Pos_X,word D_Pos_Y,word Largeur_destination) void Copier_une_partie_d_image_dans_une_autre(byte * Source,word S_Pos_X,word S_Pos_Y,word Largeur,word Hauteur,word Largeur_source,byte * Destination,word D_Pos_X,word D_Pos_Y,word Largeur_destination)
{ {
// ESI = adresse de la source en (S_Pox_X,S_Pos_Y) // ESI = adresse de la source en (S_Pox_X,S_Pos_Y)
byte* esi = Source + S_Pos_Y * Largeur_source + S_Pos_X; byte* esi = Source + S_Pos_Y * Largeur_source + S_Pos_X;
// EDI = adresse de la destination (D_Pos_X,D_Pos_Y) // EDI = adresse de la destination (D_Pos_X,D_Pos_Y)
byte* edi = Destination + D_Pos_Y * Largeur_destination + D_Pos_X; byte* edi = Destination + D_Pos_Y * Largeur_destination + D_Pos_X;
int Ligne; int Ligne;
// Pour chaque ligne // Pour chaque ligne
for (Ligne=0;Ligne < Hauteur; Ligne++) for (Ligne=0;Ligne < Hauteur; Ligne++)
{ {
memcpy(edi,esi,Largeur); memcpy(edi,esi,Largeur);
// Passe à la ligne suivante // Passe à la ligne suivante
esi+=Largeur_source - Largeur; esi+=Largeur_source - Largeur;
edi+=Largeur_destination - Largeur; edi+=Largeur_destination - Largeur;
} }
} }
byte Lit_pixel_dans_ecran_brouillon(word X,word Y) byte Lit_pixel_dans_ecran_brouillon(word X,word Y)
{ {
UNIMPLEMENTED UNIMPLEMENTED
return 0; return 0;
} }
void Rotate_90_deg_LOWLEVEL(byte * Source,byte * Destination) void Rotate_90_deg_LOWLEVEL(byte * Source,byte * Destination)
{ {
UNIMPLEMENTED UNIMPLEMENTED
} }
void Remap_general_LOWLEVEL(byte * Table_conv,byte * Buffer,short Largeur,short Hauteur,short Largeur_buffer) void Remap_general_LOWLEVEL(byte * Table_conv,byte * Buffer,short Largeur,short Hauteur,short Largeur_buffer)
{ {
puts("Remap_general_LOWLEVEL non implémenté!"); puts("Remap_general_LOWLEVEL non implémenté!");
} }
void Copier_image_dans_brosse(short Debut_X,short Debut_Y,short Brosse_Largeur,short Brosse_Hauteur,word Largeur_image) void Copier_image_dans_brosse(short Debut_X,short Debut_Y,short Brosse_Largeur,short Brosse_Hauteur,word Largeur_image)
@ -457,70 +461,70 @@ void Copier_image_dans_brosse(short Debut_X,short Debut_Y,short Brosse_Largeur,s
byte Lit_pixel_dans_ecran_feedback (word X,word Y) byte Lit_pixel_dans_ecran_feedback (word X,word Y)
{ {
UNIMPLEMENTED UNIMPLEMENTED
return 0; return 0;
} }
dword Round_div(dword Numerateur,dword Diviseur) dword Round_div(dword Numerateur,dword Diviseur)
{ {
return Numerateur/Diviseur; return Numerateur/Diviseur;
} }
byte Effet_Trame(word X,word Y) byte Effet_Trame(word X,word Y)
{ {
UNIMPLEMENTED UNIMPLEMENTED
return 0; return 0;
} }
void Set_mouse_position(void) void Set_mouse_position(void)
{ {
SDL_WarpMouse( SDL_WarpMouse(
Mouse_X << Mouse_Facteur_de_correction_X, Mouse_X << Mouse_Facteur_de_correction_X,
Mouse_Y << Mouse_Facteur_de_correction_Y Mouse_Y << Mouse_Facteur_de_correction_Y
); );
} }
void Clip_mouse(void) void Clip_mouse(void)
{ {
UNIMPLEMENTED UNIMPLEMENTED
} }
void Remplacer_toutes_les_couleurs_dans_limites(byte * Table_de_remplacement) void Remplacer_toutes_les_couleurs_dans_limites(byte * Table_de_remplacement)
{ {
// ESI pointe sur le début de la ligne d'écran actuelle // ESI pointe sur le début de la ligne d'écran actuelle
byte* esi = Principal_Ecran + Limite_Gauche + byte* esi = Principal_Ecran + Limite_Gauche +
Limite_Haut * Principal_Largeur_image; Limite_Haut * Principal_Largeur_image;
// EDI pointe sur la position actuelle dans l'écran // EDI pointe sur la position actuelle dans l'écran
byte* edi = esi; byte* edi = esi;
// On place dans CX le nombre de lignes à traiter // On place dans CX le nombre de lignes à traiter
int Ligne; int Ligne;
int Compteur; int Compteur;
// Pour chaque ligne : // Pour chaque ligne :
for(Ligne = Limite_Haut;Ligne < Limite_Bas; Ligne++) for(Ligne = Limite_Haut;Ligne < Limite_Bas; Ligne++)
{ {
// Pour chaque pixel sur la ligne : // Pour chaque pixel sur la ligne :
for (Compteur = Limite_Gauche;Compteur < Limite_Droite;Compteur ++); for (Compteur = Limite_Gauche;Compteur < Limite_Droite;Compteur ++);
{ {
if(*edi!=0) DEBUG("c",*edi); if(*edi!=0) DEBUG("c",*edi);
*edi = Table_de_remplacement[*edi]; *edi = Table_de_remplacement[*edi];
edi++; edi++;
} }
// Passage à la ligne suivante // Passage à la ligne suivante
esi += Principal_Largeur_image; esi += Principal_Largeur_image;
edi = esi; edi = esi;
} }
DEBUG("Ligne",Ligne); DEBUG("Ligne",Ligne);
DEBUG("Compteur",Compteur); DEBUG("Compteur",Compteur);
} }
byte inline Lit_pixel_dans_ecran_backup (word X,word Y) byte Lit_pixel_dans_ecran_backup (word X,word Y)
{ {
return *(Ecran_backup + X + Principal_Largeur_image * Y); return *(Ecran_backup + X + Principal_Largeur_image * Y);
} }
byte Type_de_lecteur_de_disquette(byte Numero_de_lecteur) byte Type_de_lecteur_de_disquette(byte Numero_de_lecteur)
@ -534,146 +538,146 @@ byte Type_de_lecteur_de_disquette(byte Numero_de_lecteur)
// 5 : Lecteur 2.8 Mo (??? pas sur ???) // 5 : Lecteur 2.8 Mo (??? pas sur ???)
// 6 : Lecteur 2.8 Mo // 6 : Lecteur 2.8 Mo
{ {
UNIMPLEMENTED UNIMPLEMENTED
return 0; return 0;
} }
byte Disk_map(byte Numero_de_lecteur) byte Disk_map(byte Numero_de_lecteur)
{ {
UNIMPLEMENTED UNIMPLEMENTED
return 0; return 0;
} }
byte Disque_dur_present(byte Numero_de_disque) byte Disque_dur_present(byte Numero_de_disque)
{ {
UNIMPLEMENTED UNIMPLEMENTED
return 0; return 0;
} }
byte Lecteur_CDROM_present(byte Numero_de_lecteur) byte Lecteur_CDROM_present(byte Numero_de_lecteur)
{ {
UNIMPLEMENTED UNIMPLEMENTED
return 0; return 0;
} }
long Freespace(byte Numero_de_lecteur) long Freespace(byte Numero_de_lecteur)
{ {
UNIMPLEMENTED UNIMPLEMENTED
return 0; return 0;
} }
byte Couleur_ILBM_line(word Pos_X, word Vraie_taille_ligne) byte Couleur_ILBM_line(word Pos_X, word Vraie_taille_ligne)
{ {
UNIMPLEMENTED UNIMPLEMENTED
return 0; return 0;
} }
void Palette_256_to_64(T_Palette Palette) void Palette_256_to_64(T_Palette Palette)
{ {
UNIMPLEMENTED UNIMPLEMENTED
} }
void Palette_64_to_256(T_Palette Palette) void Palette_64_to_256(T_Palette Palette)
{ {
UNIMPLEMENTED UNIMPLEMENTED
} }
byte Effet_Colorize_interpole (word X,word Y,byte Couleur) byte Effet_Colorize_interpole (word X,word Y,byte Couleur)
{ {
UNIMPLEMENTED UNIMPLEMENTED
return 0; return 0;
} }
byte Effet_Colorize_additif (word X,word Y,byte Couleur) byte Effet_Colorize_additif (word X,word Y,byte Couleur)
{ {
UNIMPLEMENTED UNIMPLEMENTED
return 0; return 0;
} }
byte Effet_Colorize_soustractif(word X,word Y,byte Couleur) byte Effet_Colorize_soustractif(word X,word Y,byte Couleur)
{ {
UNIMPLEMENTED UNIMPLEMENTED
return 0; return 0;
} }
void inline Tester_chrono(void) void Tester_chrono(void)
{ {
if((SDL_GetTicks()/55)-Chrono_delay>Chrono_cmp) Etat_chrono=1; if((SDL_GetTicks()/55)-Chrono_delay>Chrono_cmp) Etat_chrono=1;
} }
void Flip_Y_LOWLEVEL(void) void Flip_Y_LOWLEVEL(void)
{ {
UNIMPLEMENTED UNIMPLEMENTED
} }
void Flip_X_LOWLEVEL(void) void Flip_X_LOWLEVEL(void)
{ {
UNIMPLEMENTED UNIMPLEMENTED
} }
void Rotate_180_deg_LOWLEVEL(void) void Rotate_180_deg_LOWLEVEL(void)
{ {
UNIMPLEMENTED UNIMPLEMENTED
} }
void Tempo_jauge(byte Vitesse) void Tempo_jauge(byte Vitesse)
//Boucle d'attente pour faire bouger les scrollbars à une vitesse correcte //Boucle d'attente pour faire bouger les scrollbars à une vitesse correcte
{ {
while (Vitesse!=0) while (Vitesse!=0)
{ {
Wait_VBL(); Wait_VBL();
Vitesse--; Vitesse--;
} }
} }
byte Meilleure_couleur_sans_exclusion(byte Rouge,byte Vert,byte Bleu) byte Meilleure_couleur_sans_exclusion(byte Rouge,byte Vert,byte Bleu)
{ {
UNIMPLEMENTED UNIMPLEMENTED
return 0; return 0;
} }
void Set_color(byte Couleur, byte Rouge, byte Vert, byte Bleu) void Set_color(byte Couleur, byte Rouge, byte Vert, byte Bleu)
{ {
UNIMPLEMENTED UNIMPLEMENTED
} }
void Scroll_picture(short Decalage_X,short Decalage_Y) void Scroll_picture(short Decalage_X,short Decalage_Y)
{ {
UNIMPLEMENTED UNIMPLEMENTED
} }
byte Get_key(void) byte Get_key(void)
{ {
SDL_Event event; SDL_Event event;
SDL_EnableUNICODE(SDL_ENABLE); // On a besoin du caractère SDL_EnableUNICODE(SDL_ENABLE); // On a besoin du caractère
while(1) while(1)
{ {
SDL_PollEvent(&event); SDL_PollEvent(&event);
if(event.type == SDL_KEYDOWN) if(event.type == SDL_KEYDOWN)
{ {
// On retourne en mode standard pour la gestion normale // On retourne en mode standard pour la gestion normale
SDL_EnableUNICODE(SDL_DISABLE); SDL_EnableUNICODE(SDL_DISABLE);
return (byte)(event.key.keysym.unicode); return (byte)(event.key.keysym.unicode);
} }
} }
} }
void Zoomer_une_ligne(byte* Ligne_originale, byte* Ligne_zoomee, void Zoomer_une_ligne(byte* Ligne_originale, byte* Ligne_zoomee,
word Facteur, word Largeur word Facteur, word Largeur
) )
{ {
byte couleur; byte couleur;
word larg; word larg;
// Pour chaque pixel // Pour chaque pixel
for(larg=0;larg<Largeur;larg++){ for(larg=0;larg<Largeur;larg++){
couleur = *Ligne_originale; couleur = *Ligne_originale;
memset(Ligne_zoomee,couleur,Facteur); memset(Ligne_zoomee,couleur,Facteur);
Ligne_zoomee+=Facteur; Ligne_zoomee+=Facteur;
Ligne_originale++; Ligne_originale++;
} }
} }

View File

@ -111,7 +111,7 @@ byte Couleur_ILBM_line(word Pos_X, word Vraie_taille_ligne);
// Renvoie la couleur du pixel (ILBM) en Pos_X. // Renvoie la couleur du pixel (ILBM) en Pos_X.
// Gestion du chrono dans les fileselects // Gestion du chrono dans les fileselects
void Initialiser_chrono(long Delai); void Initialiser_chrono(dword Delai);
void Tester_chrono(void); void Tester_chrono(void);
void Remplacer_une_couleur(byte Ancienne_couleur, byte Nouvelle_couleur); void Remplacer_une_couleur(byte Ancienne_couleur, byte Nouvelle_couleur);
@ -131,3 +131,11 @@ void Rotate_90_deg_LOWLEVEL(byte * Source,byte * Destination);
void Rotate_180_deg_LOWLEVEL(void); void Rotate_180_deg_LOWLEVEL(void);
void Zoomer_une_ligne(byte * Ligne_originale,byte * Ligne_zoomee,word Facteur,word Largeur); void Zoomer_une_ligne(byte * Ligne_originale,byte * Ligne_zoomee,word Facteur,word Largeur);
void Copier_une_partie_d_image_dans_une_autre(byte * Source,word S_Pos_X,word S_Pos_Y,word Largeur,word Hauteur,word Largeur_source,byte * Destination,word D_Pos_X,word D_Pos_Y,word Largeur_destination); void Copier_une_partie_d_image_dans_une_autre(byte * Source,word S_Pos_X,word S_Pos_Y,word Largeur,word Hauteur,word Largeur_source,byte * Destination,word D_Pos_X,word D_Pos_Y,word Largeur_destination);
// -- Gestion du chrono --
byte Etat_chrono; // Etat du chrono: 0=Attente d'un Xème de seconde
// 1=Il faut afficher la preview
// 2=Plus de chrono à gerer pour l'instant
dword Chrono_delay; // Nombre de 18.2ème de secondes demandés
dword Chrono_cmp; // Heure de départ du chrono
byte Nouvelle_preview; // Booléen "Il faut relancer le chrono de preview"

61
files.c
View File

@ -7,15 +7,24 @@
#include <fcntl.h> #include <fcntl.h>
#include <string.h> #include <string.h>
#include <dirent.h>
#include <errno.h> #include <errno.h>
#include <unistd.h> #include <unistd.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <unistd.h> #include <unistd.h>
#ifdef __linux__
#include "linux.h" #include "linux.h"
#include <dirent.h>
#define isDir(Enreg) ((Enreg)->d_type == DT_DIR)
#define isHidden(Enreg) ((Enreg)->d_name[0]=='.')
#define isFile(Enreg) (Enreg->d_type==DT_REG)
#elif __WATCOMC__
#include <direct.h>
#define isDir(Enreg) ((Enreg)->d_attr & _A_SUBDIR)
#define isHidden(Enreg) ((Enreg)->d_attr & _A_HIDDEN)
#define isFile(Enreg) ((Enreg)->d_attr & _A_SUBDIR == 0)
#endif
#define COULEUR_FICHIER_NORMAL CM_Clair // Couleur du texte pour une ligne de fichier non sélectionné #define COULEUR_FICHIER_NORMAL CM_Clair // Couleur du texte pour une ligne de fichier non sélectionné
#define COULEUR_REPERTOIRE_NORMAL CM_Fonce // Couleur du texte pour une ligne de répertoire non sélectionné #define COULEUR_REPERTOIRE_NORMAL CM_Fonce // Couleur du texte pour une ligne de répertoire non sélectionné
@ -133,19 +142,23 @@ char * Nom_formate(char * Nom)
} }
// -- Rajouter … la liste des lments de la liste un lment --------------- // -- Rajouter a la liste des elements de la liste un element ---------------
void Ajouter_element_a_la_liste(struct dirent* Enreg) void Ajouter_element_a_la_liste(struct dirent* Enreg)
// Cette procdure ajoute … la liste chaine un fichier pass en argument. // Cette procedure ajoute a la liste chainee un fichier pass en argument.
{ {
// Pointeur temporaire d'insertion // Pointeur temporaire d'insertion
struct Element_de_liste_de_fileselect * Element_temporaire; struct Element_de_liste_de_fileselect * Element_temporaire;
// On alloue de la place pour un nouvel lment // On alloue de la place pour un nouvel element
Element_temporaire=(struct Element_de_liste_de_fileselect *)malloc(sizeof(struct Element_de_liste_de_fileselect)); Element_temporaire=(struct Element_de_liste_de_fileselect *)malloc(sizeof(struct Element_de_liste_de_fileselect));
// On met jour le nouvel emplacement: // On met a jour le nouvel emplacement:
strcpy(Element_temporaire->Nom,Nom_formate(Enreg->d_name)); strcpy(Element_temporaire->Nom,Nom_formate(Enreg->d_name));
Element_temporaire->Type =(Enreg->d_type == DT_DIR); #ifdef __linux__
Element_temporaire->Type = (Enreg->d_type == DT_DIR);
#elif __WATCOMC__
Element_temporaire->Type = (Enreg->d_attr & _A_SUBDIR);
#endif
Element_temporaire->Suivant =Liste_du_fileselect; Element_temporaire->Suivant =Liste_du_fileselect;
Element_temporaire->Precedent=NULL; Element_temporaire->Precedent=NULL;
@ -187,22 +200,22 @@ void Lire_liste_des_fichiers(byte Format_demande)
// Si l'élément n'est pas le répertoire courant // Si l'élément n'est pas le répertoire courant
if ( (Enreg->d_name[0]!='.') && (Enreg->d_name[1] != 0)) if ( (Enreg->d_name[0]!='.') && (Enreg->d_name[1] != 0))
{ {
// et que l'élément trouvé est un répertoire // et que l'élément trouvé est un répertoire
if( (Enreg->d_type == DT_DIR) && if( isDir(Enreg) &&
// et qu'il n'est pas caché // et qu'il n'est pas caché
(Enreg->d_name[0]!='.' || Config.Lire_les_repertoires_caches)) ((!isHidden(Enreg)) || Config.Lire_les_repertoires_caches))
{ {
// On rajoute le répertore à la liste // On rajoute le répertore à la liste
Ajouter_element_a_la_liste(Enreg); Ajouter_element_a_la_liste(Enreg);
Liste_Nb_repertoires++; Liste_Nb_repertoires++;
} }
else if ((Enreg->d_type==DT_REG) //Il s'agit d'un fichier else if (isFile(Enreg) //Il s'agit d'un fichier
&& (Enreg->d_name[0]!='.' || Config.Lire_les_fichiers_caches)) //Il n'est pas caché && ((!isHidden(Enreg)) || Config.Lire_les_fichiers_caches)) //Il n'est pas caché
{ {
// On rajoute le fichier à la liste // On rajoute le fichier à la liste
Ajouter_element_a_la_liste(Enreg); Ajouter_element_a_la_liste(Enreg);
Liste_Nb_fichiers++; Liste_Nb_fichiers++;
} }
} }
// On cherche l'élément suivant // On cherche l'élément suivant

View File

@ -159,7 +159,7 @@ GLOBAL fonction_lecteur Lit_pixel; // Teste la couleur d'un pixel dans l'
GLOBAL fonction_effaceur Clear_screen; // Efface rapidement tout l'écran (en faisant attention de ne pas effacer le menu) GLOBAL fonction_effaceur Clear_screen; // Efface rapidement tout l'écran (en faisant attention de ne pas effacer le menu)
GLOBAL fonction_display Display_screen; // Affiche rapidement tout l'écran (en faisant attention de ne pas effacer le menu) GLOBAL fonction_display Display_screen; // Affiche rapidement tout l'écran (en faisant attention de ne pas effacer le menu)
GLOBAL fonction_block Block; // Affiche rapidement un bloc à l'écran GLOBAL fonction_block Block; // Affiche rapidement un bloc à l'écran
GLOBAL fonction_block Block_Fast; // Affiche rapidement un bloc à l'écran sans rafraichir GLOBAL fonction_block Block_Fast; // Affiche rapidement un bloc à l'écran sans rafraichir
GLOBAL fonction_afficheur Pixel_Preview_Normal; // Affiche un point de l'image à l'Úcran en mode normal (pas en mode loupe) GLOBAL fonction_afficheur Pixel_Preview_Normal; // Affiche un point de l'image à l'Úcran en mode normal (pas en mode loupe)
GLOBAL fonction_afficheur Pixel_Preview_Loupe; // Affiche un point de l'image à l'Úcran en mode loupe GLOBAL fonction_afficheur Pixel_Preview_Loupe; // Affiche un point de l'image à l'Úcran en mode loupe
GLOBAL fonction_afficheur Pixel_Preview; // Affiche un point de l'image à l'Úcran en fonction de l'Útat du mode loupe GLOBAL fonction_afficheur Pixel_Preview; // Affiche un point de l'image à l'Úcran en fonction de l'Útat du mode loupe
@ -212,6 +212,10 @@ GLOBAL short Principal_Decalage_Y; // D
GLOBAL short Ancien_Principal_Decalage_X; GLOBAL short Ancien_Principal_Decalage_X;
GLOBAL short Ancien_Principal_Decalage_Y; GLOBAL short Ancien_Principal_Decalage_Y;
#ifdef __WATCOMC__
GLOBAL char Principal_Drive_fichier[2];
#endif
GLOBAL char Principal_Repertoire_fichier[256]; // |_ Nom complet = GLOBAL char Principal_Repertoire_fichier[256]; // |_ Nom complet =
GLOBAL char Principal_Nom_fichier[13]; // | Repertoire_fichier+"\"+Nom_fichier GLOBAL char Principal_Nom_fichier[13]; // | Repertoire_fichier+"\"+Nom_fichier
GLOBAL byte Principal_Format_fichier; // Format auquel il faut lire et Úcrire le fichier GLOBAL byte Principal_Format_fichier; // Format auquel il faut lire et Úcrire le fichier

11800
graph.c

File diff suppressed because it is too large Load Diff

4507
init.c

File diff suppressed because it is too large Load Diff

View File

@ -10,5 +10,3 @@ int filelength(int);
void itoa(int source,char* dest, int longueur); void itoa(int source,char* dest, int longueur);
/* Integer TO Ascii */ /* Integer TO Ascii */
#define _A_SUBDIR 1

View File

@ -16,7 +16,9 @@
#include <unistd.h> #include <unistd.h>
#include "boutons.h" #include "boutons.h"
#include "linux.h" #ifdef __linux__
#include "linux.h"
#endif
// 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":
@ -323,7 +325,7 @@ void Nom_fichier_complet(char * Nom_du_fichier, byte Sauve_Colorix)
//On va ajouter un / à la fin du chemin s'il n'y est pas encore //On va ajouter un / à la fin du chemin s'il n'y est pas encore
//Attention sous windows il faut un \... //Attention sous windows il faut un \...
if (Nom_du_fichier[strlen(Nom_du_fichier)-1]!='/') if (Nom_du_fichier[strlen(Nom_du_fichier)-1]!='/')
strcat(Nom_du_fichier,"/"); strcat(Nom_du_fichier,"/");
// Si on est en train de sauvegarder une image Colorix, on calcule son ext. // Si on est en train de sauvegarder une image Colorix, on calcule son ext.
if (Sauve_Colorix) if (Sauve_Colorix)
@ -695,9 +697,9 @@ void Save_PAL(void)
close(Fichier); close(Fichier);
remove(Nom_du_fichier); remove(Nom_du_fichier);
// On se fout du résultat de l'opération car si ‡a // On se fout du résultat de l'opération car si ‡a
// renvoie 0 c'est que le fichier avait été partiel- // renvoie 0 c'est que le fichier avait été partiel-
// -lement écrit, sinon pas du tout. Or dans tous les // -lement écrit, sinon pas du tout. Or dans tous les
// cas ‡a revient au mˆme pour nous: Sauvegarde ratée! // cas ‡a revient au mˆme pour nous: Sauvegarde ratée!
} }
} }
@ -901,15 +903,15 @@ void Test_PKM(void)
{ {
char Ident[3]; // ChaŒne "PKM" } char Ident[3]; // ChaŒne "PKM" }
byte Methode; // Méthode de compression: byte Methode; // Méthode de compression:
// 0 = compression en ligne (c)KM // 0 = compression en ligne (c)KM
// autres = inconnues pour le moment // autres = inconnues pour le moment
byte Recon1; // Octet de reconnaissance sur 1 octet } byte Recon1; // Octet de reconnaissance sur 1 octet }
byte Recon2; // Octet de reconnaissance sur 2 octets } byte Recon2; // Octet de reconnaissance sur 2 octets }
word Largeur; // Largeur de l'image word Largeur; // Largeur de l'image
word Hauteur; // Hauteur de l'image word Hauteur; // Hauteur de l'image
T_Palette Palette; // Palette RVB 256*3 T_Palette Palette; // Palette RVB 256*3
word Jump; // Taille du saut entre le header et l'image: word Jump; // Taille du saut entre le header et l'image:
// On va s'en servir pour rajouter un commentaire // On va s'en servir pour rajouter un commentaire
} Head; } Head;
@ -1160,8 +1162,8 @@ void Load_PKM(void)
for (Indice=1;Indice<=255;Indice++) for (Indice=1;Indice<=255;Indice++)
if (Find_recon[Indice]<NBest) if (Find_recon[Indice]<NBest)
{ {
Best=Indice; Best=Indice;
NBest=Find_recon[Indice]; NBest=Find_recon[Indice];
} }
*Recon1=Best; *Recon1=Best;
@ -1172,8 +1174,8 @@ void Load_PKM(void)
for (Indice=0;Indice<=255;Indice++) for (Indice=0;Indice<=255;Indice++)
if ( (Find_recon[Indice]<NBest) && (Indice!=*Recon1) ) if ( (Find_recon[Indice]<NBest) && (Indice!=*Recon1) )
{ {
Best=Indice; Best=Indice;
NBest=Find_recon[Indice]; NBest=Find_recon[Indice];
} }
*Recon2=Best; *Recon2=Best;
} }
@ -1187,15 +1189,15 @@ void Save_PKM(void)
{ {
char Ident[3]; // ChaŒne "PKM" } char Ident[3]; // ChaŒne "PKM" }
byte Methode; // Méthode de compression: byte Methode; // Méthode de compression:
// 0 = compression en ligne (c)KM // 0 = compression en ligne (c)KM
// autres = inconnues pour le moment // autres = inconnues pour le moment
byte Recon1; // Octet de reconnaissance sur 1 octet } byte Recon1; // Octet de reconnaissance sur 1 octet }
byte Recon2; // Octet de reconnaissance sur 2 octets } byte Recon2; // Octet de reconnaissance sur 2 octets }
word Largeur; // Largeur de l'image word Largeur; // Largeur de l'image
word Hauteur; // Hauteur de l'image word Hauteur; // Hauteur de l'image
T_Palette Palette; // Palette RVB 256*3 T_Palette Palette; // Palette RVB 256*3
word Jump; // Taille du saut entre le header et l'image: word Jump; // Taille du saut entre le header et l'image:
// On va s'en servir pour rajouter un commentaire // On va s'en servir pour rajouter un commentaire
} Head; } Head;
dword Compteur_de_pixels; dword Compteur_de_pixels;
dword Taille_image; dword Taille_image;
@ -1270,52 +1272,52 @@ void Save_PKM(void)
&& (Compteur_de_pixels<Taille_image) && (Compteur_de_pixels<Taille_image)
&& (Compteur_de_repetitions<65535) ) && (Compteur_de_repetitions<65535) )
{ {
Compteur_de_repetitions++; Compteur_de_repetitions++;
Compteur_de_pixels++; Compteur_de_pixels++;
Valeur_pixel=Lit_pixel_de_sauvegarde(Compteur_de_pixels % Principal_Largeur_image,Compteur_de_pixels / Principal_Largeur_image); Valeur_pixel=Lit_pixel_de_sauvegarde(Compteur_de_pixels % Principal_Largeur_image,Compteur_de_pixels / Principal_Largeur_image);
} }
if ( (Derniere_couleur!=Head.Recon1) && (Derniere_couleur!=Head.Recon2) ) if ( (Derniere_couleur!=Head.Recon1) && (Derniere_couleur!=Head.Recon2) )
{ {
if (Compteur_de_repetitions==1) if (Compteur_de_repetitions==1)
Ecrire_octet(Fichier,Derniere_couleur); Ecrire_octet(Fichier,Derniere_couleur);
else else
if (Compteur_de_repetitions==2) if (Compteur_de_repetitions==2)
{ {
Ecrire_octet(Fichier,Derniere_couleur); Ecrire_octet(Fichier,Derniere_couleur);
Ecrire_octet(Fichier,Derniere_couleur); Ecrire_octet(Fichier,Derniere_couleur);
} }
else else
if ( (Compteur_de_repetitions>2) && (Compteur_de_repetitions<256) ) if ( (Compteur_de_repetitions>2) && (Compteur_de_repetitions<256) )
{ // RECON1/couleur/nombre { // RECON1/couleur/nombre
Ecrire_octet(Fichier,Head.Recon1); Ecrire_octet(Fichier,Head.Recon1);
Ecrire_octet(Fichier,Derniere_couleur); Ecrire_octet(Fichier,Derniere_couleur);
Ecrire_octet(Fichier,Compteur_de_repetitions&0xFF); Ecrire_octet(Fichier,Compteur_de_repetitions&0xFF);
} }
else else
if (Compteur_de_repetitions>=256) if (Compteur_de_repetitions>=256)
{ // RECON2/couleur/hi(nombre)/lo(nombre) { // RECON2/couleur/hi(nombre)/lo(nombre)
Ecrire_octet(Fichier,Head.Recon2); Ecrire_octet(Fichier,Head.Recon2);
Ecrire_octet(Fichier,Derniere_couleur); Ecrire_octet(Fichier,Derniere_couleur);
Ecrire_octet(Fichier,Compteur_de_repetitions>>8); Ecrire_octet(Fichier,Compteur_de_repetitions>>8);
Ecrire_octet(Fichier,Compteur_de_repetitions&0xFF); Ecrire_octet(Fichier,Compteur_de_repetitions&0xFF);
} }
} }
else else
{ {
if (Compteur_de_repetitions<256) if (Compteur_de_repetitions<256)
{ {
Ecrire_octet(Fichier,Head.Recon1); Ecrire_octet(Fichier,Head.Recon1);
Ecrire_octet(Fichier,Derniere_couleur); Ecrire_octet(Fichier,Derniere_couleur);
Ecrire_octet(Fichier,Compteur_de_repetitions&0xFF); Ecrire_octet(Fichier,Compteur_de_repetitions&0xFF);
} }
else else
{ {
Ecrire_octet(Fichier,Head.Recon2); Ecrire_octet(Fichier,Head.Recon2);
Ecrire_octet(Fichier,Derniere_couleur); Ecrire_octet(Fichier,Derniere_couleur);
Ecrire_octet(Fichier,Compteur_de_repetitions>>8); Ecrire_octet(Fichier,Compteur_de_repetitions>>8);
Ecrire_octet(Fichier,Compteur_de_repetitions&0xFF); Ecrire_octet(Fichier,Compteur_de_repetitions&0xFF);
} }
} }
} }
@ -1887,7 +1889,7 @@ void Load_LBM(void)
if (LBM_Mode_repetition) if (LBM_Mode_repetition)
{ {
Ecrire_octet(LBM_Fichier,257-LBM_Taille_de_file); Ecrire_octet(LBM_Fichier,257-LBM_Taille_de_file);
Ecrire_octet(LBM_Fichier,LBM_File_de_couleurs[0]); Ecrire_octet(LBM_Fichier,LBM_File_de_couleurs[0]);
} }
else else
{ {
@ -1927,7 +1929,7 @@ void Load_LBM(void)
// On conserve le mode... // On conserve le mode...
{ {
LBM_File_de_couleurs[LBM_Taille_de_file]=Couleur; LBM_File_de_couleurs[LBM_Taille_de_file]=Couleur;
LBM_Taille_de_file++; LBM_Taille_de_file++;
if (LBM_Taille_de_file==128) if (LBM_Taille_de_file==128)
Transferer_couleurs(); Transferer_couleurs();
} }

1274
main.c

File diff suppressed because it is too large Load Diff

View File

@ -12,12 +12,15 @@
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include "linux.h"
#include "boutons.h" #include "boutons.h"
#include "operatio.h" #include "operatio.h"
#include "shade.h" #include "shade.h"
#include "erreurs.h" #include "erreurs.h"
#ifdef __linux__
#include "linux.h"
#endif
//---------- Annuler les effets des modes de dessin (sauf la grille) --------- //---------- Annuler les effets des modes de dessin (sauf la grille) ---------
// Variables mémorisants les anciens effets // Variables mémorisants les anciens effets
@ -267,10 +270,10 @@ void Tracer_cadre_de_bouton_du_menu(byte Numero,byte Enfonce)
} }
} }
SDL_UpdateRect(Ecran_SDL, SDL_UpdateRect(Ecran_SDL,
Debut_X*Menu_Facteur_X, Debut_X*Menu_Facteur_X,
Debut_Y*Menu_Facteur_Y + Menu_Ordonnee, Debut_Y*Menu_Facteur_Y + Menu_Ordonnee,
(Fin_X+1-Debut_X)*Menu_Facteur_X, (Fin_X+1-Debut_X)*Menu_Facteur_X,
(Fin_Y+1-Debut_Y)*Menu_Facteur_Y); (Fin_Y+1-Debut_Y)*Menu_Facteur_Y);
} }

View File

@ -9,6 +9,10 @@
#include "boutons.h" #include "boutons.h"
#include "pages.h" #include "pages.h"
#ifdef __WATCOMC__
#define M_PI 3.14159265358979323846
#endif
void Demarrer_pile_operation(word Operation_demandee) void Demarrer_pile_operation(word Operation_demandee)
{ {
Brosse_Centre_rotation_defini=0; Brosse_Centre_rotation_defini=0;

15
pages.c
View File

@ -6,12 +6,15 @@
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#include "linux.h"
#include "global.h" #include "global.h"
#include "pages.h" #include "pages.h"
#include "graph.h" #include "graph.h"
#include "erreurs.h" #include "erreurs.h"
#ifdef __linux__
include "linux.h"
#endif
/// ///
/// GESTION DES PAGES /// GESTION DES PAGES
/// ///
@ -414,9 +417,9 @@ void Avancer_dans_une_liste_de_pages(S_Liste_de_pages * Liste)
} }
int Nouvelle_page_possible( int Nouvelle_page_possible(
S_Page * Nouvelle_page, S_Page * Nouvelle_page,
S_Liste_de_pages * Liste_courante, S_Liste_de_pages * Liste_courante,
S_Liste_de_pages * Liste_secondaire S_Liste_de_pages * Liste_secondaire
) )
{ {
unsigned long Taille_immediatement_disponible; unsigned long Taille_immediatement_disponible;
@ -427,7 +430,7 @@ int Nouvelle_page_possible(
unsigned long Taille_nouvelle_page; unsigned long Taille_nouvelle_page;
Taille_immediatement_disponible = Memoire_libre() Taille_immediatement_disponible = Memoire_libre()
- QUANTITE_MINIMALE_DE_MEMOIRE_A_CONSERVER; - QUANTITE_MINIMALE_DE_MEMOIRE_A_CONSERVER;
Taille_liste_courante =Taille_d_une_liste_de_pages(Liste_courante); Taille_liste_courante =Taille_d_une_liste_de_pages(Liste_courante);
Taille_liste_brouillon=Taille_d_une_liste_de_pages(Liste_secondaire); Taille_liste_brouillon=Taille_d_une_liste_de_pages(Liste_secondaire);
Taille_page_courante =Taille_d_une_page(Liste_courante->Pages); Taille_page_courante =Taille_d_une_page(Liste_courante->Pages);
@ -683,7 +686,7 @@ int Initialiser_les_listes_de_backups_en_debut_de_programme(int Taille,int Large
} }
else else
{ {
// Il n'est pas possible de démarrer le programme avec la page // Il n'est pas possible de démarrer le programme avec la page
// principale et la page de brouillon aux dimensions demandée par // principale et la page de brouillon aux dimensions demandée par
// l'utilisateur. ==> On l'envoie ballader // l'utilisateur. ==> On l'envoie ballader
Retour=0; Retour=0;

View File

@ -1 +1,3 @@
int Charger_INI(struct S_Config * Conf); int Charger_INI(struct S_Config * Conf);
int Charger_INI_Seek_pattern(char * Buffer,char * Pattern);
void Charger_INI_Clear_string(char * String);

View File

@ -9,8 +9,11 @@
#include "global.h" #include "global.h"
#include "graph.h" #include "graph.h"
#include "divers.h" #include "divers.h"
#include "linux.h" #include "erreurs.h"
void Erreur(int code);
#ifdef __linux__
#include "linux.h"
#endif
#define COULEUR_TEXTE CM_Noir #define COULEUR_TEXTE CM_Noir
#define COULEUR_FOND CM_Clair #define COULEUR_FOND CM_Clair
@ -134,8 +137,8 @@ byte Readline(word Pos_X,word Pos_Y,char * Chaine,byte Taille_maxi,byte Type_sai
// Effacement de la chaŒne // Effacement de la chaŒne
Block(Fenetre_Pos_X+(Pos_X*Menu_Facteur_X),Fenetre_Pos_Y+(Pos_Y*Menu_Facteur_Y), Block(Fenetre_Pos_X+(Pos_X*Menu_Facteur_X),Fenetre_Pos_Y+(Pos_Y*Menu_Facteur_Y),
Taille_maxi*(Menu_Facteur_X<<3),(Menu_Facteur_Y<<3),COULEUR_FOND); Taille_maxi*(Menu_Facteur_X<<3),(Menu_Facteur_Y<<3),COULEUR_FOND);
Rafficher_toute_la_chaine(Pos_X,Pos_Y,Chaine,Position); Rafficher_toute_la_chaine(Pos_X,Pos_Y,Chaine,Position);
} }
break; break;
case 75 : // Gauche case 75 : // Gauche
if (Position) if (Position)
@ -144,12 +147,12 @@ byte Readline(word Pos_X,word Pos_Y,char * Chaine,byte Taille_maxi,byte Type_sai
if (Position==Taille) if (Position==Taille)
Block(Fenetre_Pos_X+(Pos_X*Menu_Facteur_X),Fenetre_Pos_Y+(Pos_Y*Menu_Facteur_Y), Block(Fenetre_Pos_X+(Pos_X*Menu_Facteur_X),Fenetre_Pos_Y+(Pos_Y*Menu_Facteur_Y),
Taille_maxi*(Menu_Facteur_X<<3),(Menu_Facteur_Y<<3),COULEUR_FOND); Taille_maxi*(Menu_Facteur_X<<3),(Menu_Facteur_Y<<3),COULEUR_FOND);
Rafficher_toute_la_chaine(Pos_X,Pos_Y,Chaine,--Position); Rafficher_toute_la_chaine(Pos_X,Pos_Y,Chaine,--Position);
} }
break; break;
case 77 : // Droite case 77 : // Droite
if ((Position<Taille) && (Position<Taille_maxi-1)) if ((Position<Taille) && (Position<Taille_maxi-1))
Rafficher_toute_la_chaine(Pos_X,Pos_Y,Chaine,++Position); Rafficher_toute_la_chaine(Pos_X,Pos_Y,Chaine,++Position);
break; break;
case 71 : // Home case 71 : // Home
if (Position) if (Position)
@ -158,12 +161,12 @@ byte Readline(word Pos_X,word Pos_Y,char * Chaine,byte Taille_maxi,byte Type_sai
if (Position==Taille) if (Position==Taille)
Block(Fenetre_Pos_X+(Pos_X*Menu_Facteur_X),Fenetre_Pos_Y+(Pos_Y*Menu_Facteur_Y), Block(Fenetre_Pos_X+(Pos_X*Menu_Facteur_X),Fenetre_Pos_Y+(Pos_Y*Menu_Facteur_Y),
Taille_maxi*(Menu_Facteur_X<<3),(Menu_Facteur_Y<<3),COULEUR_FOND); Taille_maxi*(Menu_Facteur_X<<3),(Menu_Facteur_Y<<3),COULEUR_FOND);
Rafficher_toute_la_chaine(Pos_X,Pos_Y,Chaine,Position=0); Rafficher_toute_la_chaine(Pos_X,Pos_Y,Chaine,Position=0);
} }
break; break;
case 79 : // End case 79 : // End
if ((Position<Taille) && (Position<Taille_maxi-1)) if ((Position<Taille) && (Position<Taille_maxi-1))
Rafficher_toute_la_chaine(Pos_X,Pos_Y,Chaine,Position=(Taille<Taille_maxi)?Taille:Taille-1); Rafficher_toute_la_chaine(Pos_X,Pos_Y,Chaine,Position=(Taille<Taille_maxi)?Taille:Taille-1);
} }
break; break;
case 8 : case 8 :
@ -174,8 +177,8 @@ byte Readline(word Pos_X,word Pos_Y,char * Chaine,byte Taille_maxi,byte Type_sai
// Effacement de la chaŒne // Effacement de la chaŒne
Block(Fenetre_Pos_X+(Pos_X*Menu_Facteur_X),Fenetre_Pos_Y+(Pos_Y*Menu_Facteur_Y), Block(Fenetre_Pos_X+(Pos_X*Menu_Facteur_X),Fenetre_Pos_Y+(Pos_Y*Menu_Facteur_Y),
Taille_maxi*(Menu_Facteur_X<<3),(Menu_Facteur_Y<<3),COULEUR_FOND); Taille_maxi*(Menu_Facteur_X<<3),(Menu_Facteur_Y<<3),COULEUR_FOND);
Rafficher_toute_la_chaine(Pos_X,Pos_Y,Chaine,Position); Rafficher_toute_la_chaine(Pos_X,Pos_Y,Chaine,Position);
} }
break; break;
case 13 : case 13 :
if ( (Type_saisie!=2) || (Chaine_valide(Chaine)) ) if ( (Type_saisie!=2) || (Chaine_valide(Chaine)) )

View File

@ -1,6 +1,7 @@
#include <stdio.h> #include <stdio.h>
#include "const.h" #include "const.h"
#include "global.h" #include "global.h"
#include "readini.h"
int Sauver_INI_Reach_group(FILE * Old_file,FILE * New_file,char * Buffer,char * Group) int Sauver_INI_Reach_group(FILE * Old_file,FILE * New_file,char * Buffer,char * Group)
{ {

View File

@ -4,21 +4,21 @@
#include "divers.h" #include "divers.h"
#include "erreurs.h" #include "erreurs.h"
void inline Pixel_SDL (word X,word Y,byte Couleur) void Pixel_SDL (word X,word Y,byte Couleur)
/* Affiche un pixel de la Couleur aux coords X;Y à l'écran */ /* Affiche un pixel de la Couleur aux coords X;Y à l'écran */
{ {
*(Ecran + X + Y * Largeur_ecran)=Couleur; *(Ecran + X + Y * Largeur_ecran)=Couleur;
} }
byte inline Lit_Pixel_SDL (word X,word Y) byte Lit_Pixel_SDL (word X,word Y)
/* On retourne la couleur du pixel aux coords données */ /* On retourne la couleur du pixel aux coords données */
{ {
return *( Ecran + Y * Largeur_ecran + X ); return *( Ecran + Y * Largeur_ecran + X );
} }
void Effacer_Tout_l_Ecran_SDL (byte Couleur) void Effacer_Tout_l_Ecran_SDL (byte Couleur)
{ {
UNIMPLEMENTED UNIMPLEMENTED
} }
void Afficher_partie_de_l_ecran_SDL (word Largeur,word Hauteur,word Largeur_image) void Afficher_partie_de_l_ecran_SDL (word Largeur,word Hauteur,word Largeur_image)
@ -44,24 +44,24 @@ void Afficher_partie_de_l_ecran_SDL (word Largeur,word Hauteur,word Largeu
void Block_SDL (word Debut_X,word Debut_Y,word Largeur,word Hauteur,byte Couleur) void Block_SDL (word Debut_X,word Debut_Y,word Largeur,word Hauteur,byte Couleur)
/* On affiche un rectangle de la couleur donnée */ /* On affiche un rectangle de la couleur donnée */
{ {
SDL_Rect rectangle; SDL_Rect rectangle;
rectangle.x=Debut_X; rectangle.x=Debut_X;
rectangle.y=Debut_Y; rectangle.y=Debut_Y;
rectangle.w=Largeur; rectangle.w=Largeur;
rectangle.h=Hauteur; rectangle.h=Hauteur;
SDL_FillRect(Ecran_SDL,&rectangle,Couleur); SDL_FillRect(Ecran_SDL,&rectangle,Couleur);
SDL_UpdateRect(Ecran_SDL,Debut_X,Debut_Y,Largeur,Hauteur); SDL_UpdateRect(Ecran_SDL,Debut_X,Debut_Y,Largeur,Hauteur);
} }
void Block_SDL_Fast (word Debut_X,word Debut_Y,word Largeur,word Hauteur,byte Couleur) void Block_SDL_Fast (word Debut_X,word Debut_Y,word Largeur,word Hauteur,byte Couleur)
/* On affiche un rectangle de la couleur donnée */ /* On affiche un rectangle de la couleur donnée */
{ {
SDL_Rect rectangle; SDL_Rect rectangle;
rectangle.x=Debut_X; rectangle.x=Debut_X;
rectangle.y=Debut_Y; rectangle.y=Debut_Y;
rectangle.w=Largeur; rectangle.w=Largeur;
rectangle.h=Hauteur; rectangle.h=Hauteur;
SDL_FillRect(Ecran_SDL,&rectangle,Couleur); SDL_FillRect(Ecran_SDL,&rectangle,Couleur);
} }
void Pixel_Preview_Normal_SDL (word X,word Y,byte Couleur) void Pixel_Preview_Normal_SDL (word X,word Y,byte Couleur)
@ -70,36 +70,36 @@ void Pixel_Preview_Normal_SDL (word X,word Y,byte Couleur)
* Note: si on modifie cette procédure, il faudra penser à faire également * Note: si on modifie cette procédure, il faudra penser à faire également
* la modif dans la procédure Pixel_Preview_Loupe_SDL. */ * la modif dans la procédure Pixel_Preview_Loupe_SDL. */
{ {
// if(X-Principal_Decalage_X >= 0 && Y - Principal_Decalage_Y >= 0) // if(X-Principal_Decalage_X >= 0 && Y - Principal_Decalage_Y >= 0)
Pixel_SDL(X-Principal_Decalage_X,Y-Principal_Decalage_Y,Couleur); Pixel_SDL(X-Principal_Decalage_X,Y-Principal_Decalage_Y,Couleur);
} }
void Pixel_Preview_Loupe_SDL (word X,word Y,byte Couleur) void Pixel_Preview_Loupe_SDL (word X,word Y,byte Couleur)
{ {
// Affiche le pixel dans la partie non zoomée // Affiche le pixel dans la partie non zoomée
Pixel_SDL(X-Principal_Decalage_X,Y-Principal_Decalage_Y,Couleur); Pixel_SDL(X-Principal_Decalage_X,Y-Principal_Decalage_Y,Couleur);
// Regarde si on doit aussi l'afficher dans la partie zoomée // Regarde si on doit aussi l'afficher dans la partie zoomée
if (Y >= Limite_Haut_Zoom && Y <= Limite_visible_Bas_Zoom if (Y >= Limite_Haut_Zoom && Y <= Limite_visible_Bas_Zoom
&& X >= Limite_Gauche_Zoom && X <= Limite_visible_Droite_Zoom) && X >= Limite_Gauche_Zoom && X <= Limite_visible_Droite_Zoom)
{ {
// On est dedans // On est dedans
int hauteur; int hauteur;
int Y_Zoom = Table_mul_facteur_zoom[Y-Loupe_Decalage_Y]; int Y_Zoom = Table_mul_facteur_zoom[Y-Loupe_Decalage_Y];
if (Menu_Ordonnee - Y_Zoom < Loupe_Facteur) if (Menu_Ordonnee - Y_Zoom < Loupe_Facteur)
// On ne doit dessiner qu'un morceau du pixel // On ne doit dessiner qu'un morceau du pixel
// sinon on dépasse sur le menu // sinon on dépasse sur le menu
hauteur = Menu_Ordonnee - Y_Zoom; hauteur = Menu_Ordonnee - Y_Zoom;
else else
hauteur = Loupe_Facteur; hauteur = Loupe_Facteur;
Block_SDL_Fast( Block_SDL_Fast(
Table_mul_facteur_zoom[X-Loupe_Decalage_X] Table_mul_facteur_zoom[X-Loupe_Decalage_X]
+ Principal_X_Zoom, + Principal_X_Zoom,
Y_Zoom, Loupe_Facteur, hauteur, Couleur Y_Zoom, Loupe_Facteur, hauteur, Couleur
); );
} }
} }
void Ligne_horizontale_XOR_SDL(word Pos_X,word Pos_Y,word Largeur) void Ligne_horizontale_XOR_SDL(word Pos_X,word Pos_Y,word Largeur)
@ -110,7 +110,7 @@ void Ligne_horizontale_XOR_SDL(word Pos_X,word Pos_Y,word Largeur)
int ecx; int ecx;
for (ecx=0;ecx<Largeur;ecx++) for (ecx=0;ecx<Largeur;ecx++)
*(edi+ecx)=~*(edi+ecx); *(edi+ecx)=~*(edi+ecx);
} }
void Ligne_verticale_XOR_SDL (word Pos_X,word Pos_Y,word Hauteur) void Ligne_verticale_XOR_SDL (word Pos_X,word Pos_Y,word Hauteur)
@ -119,44 +119,44 @@ void Ligne_verticale_XOR_SDL (word Pos_X,word Pos_Y,word Hauteur)
byte color; byte color;
for (i=Pos_Y;i<Pos_Y+Hauteur;i++) for (i=Pos_Y;i<Pos_Y+Hauteur;i++)
{ {
color=*(Ecran+Pos_X+i*Largeur_ecran); color=*(Ecran+Pos_X+i*Largeur_ecran);
*(Ecran+Pos_X+i*Largeur_ecran)=~color; *(Ecran+Pos_X+i*Largeur_ecran)=~color;
} }
} }
void Display_brush_Color_SDL (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Hauteur,byte Couleur_de_transparence,word Largeur_brosse) void Display_brush_Color_SDL (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Hauteur,byte Couleur_de_transparence,word Largeur_brosse)
{ {
UNIMPLEMENTED UNIMPLEMENTED
} }
void Display_brush_Mono_SDL (word Pos_X, word Pos_Y, void Display_brush_Mono_SDL (word Pos_X, word Pos_Y,
word Decalage_X, word Decalage_Y, word Largeur, word Hauteur, word Decalage_X, word Decalage_Y, word Largeur, word Hauteur,
byte Couleur_de_transparence, byte Couleur, word Largeur_brosse) byte Couleur_de_transparence, byte Couleur, word Largeur_brosse)
/* On affiche la brosse en monochrome */ /* On affiche la brosse en monochrome */
{ {
byte* Dest=Pos_Y*Largeur_ecran+Pos_X+Ecran; // EDI = adr destination à byte* Dest=Pos_Y*Largeur_ecran+Pos_X+Ecran; // EDI = adr destination à
// l'écran // l'écran
byte* Src=Largeur_brosse*Decalage_Y+Decalage_X+Brosse; // ESI = adr ds byte* Src=Largeur_brosse*Decalage_Y+Decalage_X+Brosse; // ESI = adr ds
// la brosse // la brosse
int dx,cx; int dx,cx;
for(dx=Hauteur;dx!=0;dx--) for(dx=Hauteur;dx!=0;dx--)
//Pour chaque ligne //Pour chaque ligne
{ {
for(cx=Largeur;cx!=0;cx--) for(cx=Largeur;cx!=0;cx--)
//Pour chaque pixel //Pour chaque pixel
{ {
if (*Src!=Couleur_de_transparence) if (*Src!=Couleur_de_transparence)
*Dest=Couleur; *Dest=Couleur;
// On passe au pixel suivant // On passe au pixel suivant
Src++; Src++;
Dest++; Dest++;
} }
// On passe à la ligne suivante // On passe à la ligne suivante
Src+=Largeur_brosse-Largeur; Src+=Largeur_brosse-Largeur;
Dest+=Largeur_ecran-Largeur; Dest+=Largeur_ecran-Largeur;
} }
SDL_UpdateRect(Ecran_SDL,Pos_X,Pos_Y,Largeur,Hauteur); SDL_UpdateRect(Ecran_SDL,Pos_X,Pos_Y,Largeur,Hauteur);
} }
@ -182,10 +182,10 @@ void Clear_brush_SDL (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word
void Remap_screen_SDL (word Pos_X,word Pos_Y,word Largeur,word Hauteur,byte * Table_de_conversion) void Remap_screen_SDL (word Pos_X,word Pos_Y,word Largeur,word Hauteur,byte * Table_de_conversion)
{ {
UNIMPLEMENTED UNIMPLEMENTED
} }
void inline Afficher_une_ligne_ecran_SDL (word Pos_X,word Pos_Y,word Largeur,byte * Ligne) void Afficher_une_ligne_ecran_SDL (word Pos_X,word Pos_Y,word Largeur,byte * Ligne)
/* On affiche toute une ligne de pixels. Utilisé pour les textes. */ /* On affiche toute une ligne de pixels. Utilisé pour les textes. */
{ {
memcpy(Ecran+Pos_X+Pos_Y*Largeur_ecran,Ligne,Largeur); memcpy(Ecran+Pos_X+Pos_Y*Largeur_ecran,Ligne,Largeur);
@ -193,21 +193,21 @@ void inline Afficher_une_ligne_ecran_SDL (word Pos_X,word Pos_Y,word Largeur,byt
} }
void Afficher_une_ligne_transparente_mono_a_l_ecran_SDL( void Afficher_une_ligne_transparente_mono_a_l_ecran_SDL(
word Pos_X, word Pos_Y, word Largeur, byte* Ligne, word Pos_X, word Pos_Y, word Largeur, byte* Ligne,
byte Couleur_transparence, byte Couleur) byte Couleur_transparence, byte Couleur)
// Affiche une ligne à l'écran avec une couleur + transparence. // Affiche une ligne à l'écran avec une couleur + transparence.
// Utilisé par les brosses en mode zoom // Utilisé par les brosses en mode zoom
{ {
byte* Dest = Ecran+ Pos_Y * Largeur_ecran + Pos_X; byte* Dest = Ecran+ Pos_Y * Largeur_ecran + Pos_X;
int Compteur; int Compteur;
// Pour chaque pixel // Pour chaque pixel
for(Compteur=0;Compteur<Largeur;Compteur++) for(Compteur=0;Compteur<Largeur;Compteur++)
{ {
if (Couleur_transparence!=*Ligne) if (Couleur_transparence!=*Ligne)
*Dest = Couleur; *Dest = Couleur;
Ligne ++; // Pixel suivant Ligne ++; // Pixel suivant
Dest++; Dest++;
} }
} }
void Lire_une_ligne_ecran_SDL (word Pos_X,word Pos_Y,word Largeur,byte * Ligne) void Lire_une_ligne_ecran_SDL (word Pos_X,word Pos_Y,word Largeur,byte * Ligne)
@ -216,38 +216,41 @@ void Lire_une_ligne_ecran_SDL (word Pos_X,word Pos_Y,word Largeur,byte * Ligne)
} }
void Afficher_partie_de_l_ecran_zoomee_SDL( void Afficher_partie_de_l_ecran_zoomee_SDL(
word Largeur, // Largeur non zoomée word Largeur, // Largeur non zoomée
word Hauteur, // Hauteur zoomée word Hauteur, // Hauteur zoomée
word Largeur_image,byte * Buffer) word Largeur_image,byte * Buffer)
{ {
byte* ESI = Principal_Ecran + Loupe_Decalage_Y * Largeur_image byte* ESI = Principal_Ecran + Loupe_Decalage_Y * Largeur_image
+ Loupe_Decalage_X; + Loupe_Decalage_X;
int EDX = 0; // Ligne en cours de traitement int EDX = 0; // Ligne en cours de traitement
// Pour chaque ligne à zoomer // Pour chaque ligne à zoomer
while(1){ while(1)
// On éclate la ligne {
Zoomer_une_ligne(ESI,Buffer,Loupe_Facteur,Largeur); int CX;
// On l'affiche Facteur fois, sur des lignes consécutives
int CX = Loupe_Facteur; // On éclate la ligne
// Pour chaque ligne Zoomer_une_ligne(ESI,Buffer,Loupe_Facteur,Largeur);
do{ // On l'affiche Facteur fois, sur des lignes consécutives
// On affiche la ligne zoomée CX = Loupe_Facteur;
Afficher_une_ligne_ecran_SDL( // Pour chaque ligne
Principal_X_Zoom, EDX, Largeur*Loupe_Facteur, do{
Buffer // On affiche la ligne zoomée
); Afficher_une_ligne_ecran_SDL(
// On passe à la suivante Principal_X_Zoom, EDX, Largeur*Loupe_Facteur,
EDX++; Buffer
if(EDX==Hauteur) );
{ // On passe à la suivante
SDL_UpdateRect(Ecran_SDL,Principal_X_Zoom,0, EDX++;
Largeur*Loupe_Facteur,Hauteur); if(EDX==Hauteur)
return; {
} SDL_UpdateRect(Ecran_SDL,Principal_X_Zoom,0,
CX--; Largeur*Loupe_Facteur,Hauteur);
}while (CX > 0); return;
ESI += Largeur_image; }
CX--;
}while (CX > 0);
ESI += Largeur_image;
} }
// ATTENTION on n'arrive jamais ici ! // ATTENTION on n'arrive jamais ici !
} }
@ -258,94 +261,95 @@ void Display_brush_Color_zoom_SDL (word Pos_X,word Pos_Y,word Decalage_X,word De
} }
void Display_brush_Mono_zoom_SDL (word Pos_X, word Pos_Y, void Display_brush_Mono_zoom_SDL (word Pos_X, word Pos_Y,
word Decalage_X, word Decalage_Y, word Decalage_X, word Decalage_Y,
word Largeur, // Largeur non zoomée word Largeur, // Largeur non zoomée
word Pos_Y_Fin, word Pos_Y_Fin,
byte Couleur_de_transparence, byte Couleur, byte Couleur_de_transparence, byte Couleur,
word Largeur_brosse, // Largeur réelle de la brosse word Largeur_brosse, // Largeur réelle de la brosse
byte * Buffer byte * Buffer
) )
{ {
byte* ESI = Brosse + Decalage_Y * Largeur_brosse + Decalage_X; byte* ESI = Brosse + Decalage_Y * Largeur_brosse + Decalage_X;
int DX=Pos_Y; int DX=Pos_Y;
//Pour chaque ligne à zoomer : //Pour chaque ligne à zoomer :
while(1) while(1)
{ {
// ESI = Ligne originale int BX;
// On éclate la ligne // ESI = Ligne originale
Zoomer_une_ligne(ESI,Buffer,Loupe_Facteur,Largeur); // On éclate la ligne
Zoomer_une_ligne(ESI,Buffer,Loupe_Facteur,Largeur);
// On affiche la ligne Facteur fois à l'écran (sur des // On affiche la ligne Facteur fois à l'écran (sur des
// lignes consécutives) // lignes consécutives)
int BX = Loupe_Facteur; BX = Loupe_Facteur;
// Pour chaque ligne écran // Pour chaque ligne écran
do do
{ {
// On affiche la ligne zoomée // On affiche la ligne zoomée
Afficher_une_ligne_transparente_mono_a_l_ecran_SDL( Afficher_une_ligne_transparente_mono_a_l_ecran_SDL(
Pos_X, DX, Largeur * Loupe_Facteur, Pos_X, DX, Largeur * Loupe_Facteur,
Buffer, Couleur_de_transparence, Couleur Buffer, Couleur_de_transparence, Couleur
); );
// On passe à la ligne suivante // On passe à la ligne suivante
DX++; DX++;
// On vérifie qu'on est pas à la ligne finale // On vérifie qu'on est pas à la ligne finale
if(DX == Pos_Y_Fin) if(DX == Pos_Y_Fin)
{ {
SDL_UpdateRect(Ecran_SDL, Pos_X, Pos_Y, SDL_UpdateRect(Ecran_SDL, Pos_X, Pos_Y,
Largeur * Loupe_Facteur, Pos_Y_Fin - Pos_Y ); Largeur * Loupe_Facteur, Pos_Y_Fin - Pos_Y );
return; return;
} }
BX --; BX --;
} }
while (BX > 0); while (BX > 0);
// Passage à la ligne suivante dans la brosse aussi // Passage à la ligne suivante dans la brosse aussi
ESI+=Largeur_brosse; ESI+=Largeur_brosse;
} }
} }
void Clear_brush_zoom_SDL (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Pos_Y_Fin,byte Couleur_de_transparence,word Largeur_image,byte * Buffer) void Clear_brush_zoom_SDL (word Pos_X,word Pos_Y,word Decalage_X,word Decalage_Y,word Largeur,word Pos_Y_Fin,byte Couleur_de_transparence,word Largeur_image,byte * Buffer)
{ {
// En fait on va recopier l'image non zoomée dans la partie zoomée ! // En fait on va recopier l'image non zoomée dans la partie zoomée !
byte* ESI = Principal_Ecran + Decalage_Y * Largeur_image + Decalage_X; byte* ESI = Principal_Ecran + Decalage_Y * Largeur_image + Decalage_X;
int DX = Pos_Y; int DX = Pos_Y;
int bx; int bx;
// Pour chaque ligne à zoomer // Pour chaque ligne à zoomer
while(1){ while(1){
Zoomer_une_ligne(ESI,Buffer,Loupe_Facteur,Largeur); Zoomer_une_ligne(ESI,Buffer,Loupe_Facteur,Largeur);
bx=Loupe_Facteur; bx=Loupe_Facteur;
// Pour chaque ligne // Pour chaque ligne
do{ do{
Afficher_une_ligne_ecran_SDL(Pos_X,DX, Afficher_une_ligne_ecran_SDL(Pos_X,DX,
Largeur * Loupe_Facteur,Buffer); Largeur * Loupe_Facteur,Buffer);
// Ligne suivante // Ligne suivante
DX++; DX++;
if(DX==Pos_Y_Fin) if(DX==Pos_Y_Fin)
{ {
SDL_UpdateRect(Ecran_SDL,Pos_X,Pos_Y, SDL_UpdateRect(Ecran_SDL,Pos_X,Pos_Y,
Largeur*Loupe_Facteur,Pos_Y_Fin-Pos_Y); Largeur*Loupe_Facteur,Pos_Y_Fin-Pos_Y);
return; return;
} }
bx--; bx--;
}while(bx!=0); }while(bx!=0);
ESI+= Largeur_image; ESI+= Largeur_image;
} }
} }
void Set_Mode_SDL() void Set_Mode_SDL()
/* On règle la résolution de l'écran */ /* On règle la résolution de l'écran */
{ {
Ecran_SDL=SDL_SetVideoMode(Largeur_ecran,Hauteur_ecran,8,SDL_HWSURFACE/*|SDL_FULLSCREEN*/); Ecran_SDL=SDL_SetVideoMode(Largeur_ecran,Hauteur_ecran,8,SDL_HWSURFACE/*|SDL_FULLSCREEN*/);
Ecran=Ecran_SDL->pixels; Ecran=Ecran_SDL->pixels;
SDL_ShowCursor(0); // Cache le curseur SDL, on le gère en soft SDL_ShowCursor(0); // Cache le curseur SDL, on le gère en soft
} }

View File

@ -1,5 +1,8 @@
#include "global.h" #include "global.h"
#include "graph.h" #include "graph.h"
#include "moteur.h"
#include "divers.h"
#include "readline.h"
void Bouton_Shade_Mode(void) void Bouton_Shade_Mode(void)
{ {

574
windows-watcom/grafx2.tgt Normal file
View File

@ -0,0 +1,574 @@
40
targetIdent
0
MProject
1
MComponent
0
2
WString
4
NEXE
3
WString
5
nw2en
1
0
1
4
MCommand
0
5
MCommand
0
6
MItem
10
grafx2.exe
7
WString
4
NEXE
8
WVList
4
9
MVState
10
WString
7
WINLINK
11
WString
12
nw2??System:
1
12
WString
5
win95
0
13
MCState
14
WString
7
WINLINK
15
WString
24
?????Incremental Linking
1
1
16
MCState
17
WString
7
WINLINK
18
WString
10
?????Quiet
1
0
19
MCState
20
WString
7
WINLINK
21
WString
20
?????Quiet operation
1
0
22
WVList
2
23
ActionStates
24
WString
5
&Make
25
WVList
0
26
ActionStates
27
WString
4
&Run
28
WVList
0
-1
1
1
0
29
WPickList
21
30
MItem
3
*.c
31
WString
4
COBJ
32
WVList
6
33
MCState
34
WString
3
WCC
35
WString
28
?????Use precompiled headers
1
1
36
MCState
37
WString
3
WCC
38
WString
31
?????Force enums to be type int
1
1
39
MRState
40
WString
3
WCC
41
WString
39
??2??Pentium Pro Register based calling
1
0
42
MRState
43
WString
3
WCC
44
WString
36
??2??Pentium Pro Stack based calling
1
1
45
MRState
46
WString
3
WCC
47
WString
21
?????Compiler default
1
1
48
MRState
49
WString
3
WCC
50
WString
21
??2??32bit Flat model
1
0
51
WVList
0
-1
1
1
0
52
MItem
9
..\aide.c
53
WString
4
COBJ
54
WVList
0
55
WVList
0
30
1
1
0
56
MItem
12
..\boutons.c
57
WString
4
COBJ
58
WVList
0
59
WVList
0
30
1
1
0
60
MItem
11
..\divers.c
61
WString
4
COBJ
62
WVList
0
63
WVList
0
30
1
1
0
64
MItem
10
..\files.c
65
WString
4
COBJ
66
WVList
0
67
WVList
0
30
1
1
0
68
MItem
10
..\graph.c
69
WString
4
COBJ
70
WVList
0
71
WVList
0
30
1
1
0
72
MItem
9
..\init.c
73
WString
4
COBJ
74
WVList
0
75
WVList
0
30
1
1
0
76
MItem
13
..\loadsave.c
77
WString
4
COBJ
78
WVList
0
79
WVList
0
30
1
1
0
80
MItem
9
..\main.c
81
WString
4
COBJ
82
WVList
0
83
WVList
0
30
1
1
0
84
MItem
11
..\moteur.c
85
WString
4
COBJ
86
WVList
0
87
WVList
0
30
1
1
0
88
MItem
11
..\op_asm.c
89
WString
4
COBJ
90
WVList
0
91
WVList
0
30
1
1
0
92
MItem
9
..\op_c.c
93
WString
4
COBJ
94
WVList
0
95
WVList
0
30
1
1
0
96
MItem
13
..\operatio.c
97
WString
4
COBJ
98
WVList
0
99
WVList
0
30
1
1
0
100
MItem
10
..\pages.c
101
WString
4
COBJ
102
WVList
0
103
WVList
0
30
1
1
0
104
MItem
12
..\palette.c
105
WString
4
COBJ
106
WVList
0
107
WVList
0
30
1
1
0
108
MItem
12
..\readini.c
109
WString
4
COBJ
110
WVList
0
111
WVList
0
30
1
1
0
112
MItem
13
..\readline.c
113
WString
4
COBJ
114
WVList
0
115
WVList
0
30
1
1
0
116
MItem
12
..\saveini.c
117
WString
4
COBJ
118
WVList
0
119
WVList
0
30
1
1
0
120
MItem
14
..\sdlscreen.c
121
WString
4
COBJ
122
WVList
0
123
WVList
0
30
1
1
0
124
MItem
10
..\shade.c
125
WString
4
COBJ
126
WVList
0
127
WVList
0
30
1
1
0
128
MItem
12
..\special.c
129
WString
4
COBJ
130
WVList
0
131
WVList
1
132
ActionStates
133
WString
5
&Make
134
WVList
0
30
1
1
0

43
windows-watcom/grafx2.wpj Normal file
View File

@ -0,0 +1,43 @@
40
projectIdent
0
VpeMain
1
WRect
-40
-53
10320
10346
2
MProject
3
MCommand
0
4
MCommand
0
1
5
WFileName
10
grafx2.tgt
6
WVList
1
7
VComponent
8
WRect
0
0
1230
4840
0
0
9
WFileName
10
grafx2.tgt
0
20
7