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

26
aide.c
View File

@ -8,7 +8,11 @@
#include <string.h>
#ifdef __linux__
#include <sys/vfs.h>
#elif __WATCOMC__
#include <windows.h>
#endif
// -- Menu d'aide -----------------------------------------------------------
@ -199,13 +203,20 @@ void Bouton_Stats(void)
short Bouton_clicke;
char Buffer[37];
dword Utilisation_couleur[256];
unsigned long long Taille;
unsigned long long freeRam;
#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");
// 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);
Block(Fenetre_Pos_X+(Menu_Facteur_X*9),
Fenetre_Pos_Y+(Menu_Facteur_Y*18),
@ -220,7 +231,9 @@ void Bouton_Stats(void)
// Affichage de la mémoire restante
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))
sprintf(Buffer,"%d Gigabytes",(unsigned int)(freeRam/(1024*1024*1024)));
else if(freeRam > (100*1024*1024))
@ -234,8 +247,15 @@ void Bouton_Stats(void)
// Affichage de l'espace disque libre
sprintf(Buffer,"Free space on %c:",Principal_Repertoire_courant[0]);
Print_dans_fenetre(10,51,Buffer,STATS_COULEUR_TITRES,CM_Noir);
#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 > (100ULL*1024*1024*1024))

View File

@ -21,6 +21,12 @@
#include "pages.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 ------------------------------------------------
/*
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,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(53,121,'U',CM_Noir);

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_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

View File

@ -5,6 +5,8 @@
#include "graph.h" //Afficher_curseur
#include "erreurs.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
byte Recuperer_nb_lignes(void)
@ -77,15 +79,14 @@ void Effacer_image_courante_Stencil(byte Couleur, byte * Pochoir)
int Nombre_De_Pixels=0; //ECX
//al=Couleur
//edi=Ecran
Uint8* Pixel_Courant=Ecran; //dl
byte* Pixel_Courant=Ecran; //dl
int i;
Nombre_De_Pixels=Principal_Hauteur_image*Principal_Largeur_image;
for(i=0;i<Nombre_De_Pixels;i++)
{
if (Pochoir[*Pixel_Courant]==0);
if (Pochoir[*Pixel_Courant]==0)
*Pixel_Courant=Couleur;
Pixel_Courant++;
}
@ -132,6 +133,8 @@ void Get_input(void)
INPUT_Nouveau_Mouse_K=0;
break;
case SDL_KEYDOWN:
{
byte ok = 0;
//Appui sur une touche du clavier
//On met le scancode dans Touche"
@ -161,7 +164,7 @@ void Get_input(void)
//Cas particulier: déplacement du curseur avec haut bas gauche droite
//On doit interpréter ça comme un mvt de la souris
byte ok=0;
if(Touche == Config_Touche[0])
{
//[Touche] = Emulation de MOUSE UP
@ -220,6 +223,7 @@ void Get_input(void)
INPUT_Nouveau_Mouse_Y<<Mouse_Facteur_de_correction_Y
);
}
}
break;
}
}
@ -518,7 +522,7 @@ void Remplacer_toutes_les_couleurs_dans_limites(byte * Table_de_remplacement)
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);
}
@ -596,7 +600,7 @@ byte Effet_Colorize_soustractif(word X,word Y,byte Couleur)
return 0;
}
void inline Tester_chrono(void)
void Tester_chrono(void)
{
if((SDL_GetTicks()/55)-Chrono_delay>Chrono_cmp) Etat_chrono=1;
}

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.
// Gestion du chrono dans les fileselects
void Initialiser_chrono(long Delai);
void Initialiser_chrono(dword Delai);
void Tester_chrono(void);
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 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);
// -- 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"

33
files.c
View File

@ -7,15 +7,24 @@
#include <fcntl.h>
#include <string.h>
#include <dirent.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#ifdef __linux__
#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_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)
// 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
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));
// On met jour le nouvel emplacement:
// On met a jour le nouvel emplacement:
strcpy(Element_temporaire->Nom,Nom_formate(Enreg->d_name));
#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->Precedent=NULL;
@ -188,16 +201,16 @@ void Lire_liste_des_fichiers(byte Format_demande)
if ( (Enreg->d_name[0]!='.') && (Enreg->d_name[1] != 0))
{
// 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é
(Enreg->d_name[0]!='.' || Config.Lire_les_repertoires_caches))
((!isHidden(Enreg)) || Config.Lire_les_repertoires_caches))
{
// On rajoute le répertore à la liste
Ajouter_element_a_la_liste(Enreg);
Liste_Nb_repertoires++;
}
else if ((Enreg->d_type==DT_REG) //Il s'agit d'un fichier
&& (Enreg->d_name[0]!='.' || Config.Lire_les_fichiers_caches)) //Il n'est pas caché
else if (isFile(Enreg) //Il s'agit d'un fichier
&& ((!isHidden(Enreg)) || Config.Lire_les_fichiers_caches)) //Il n'est pas caché
{
// On rajoute le fichier à la liste
Ajouter_element_a_la_liste(Enreg);

View File

@ -212,6 +212,10 @@ GLOBAL short Principal_Decalage_Y; // D
GLOBAL short Ancien_Principal_Decalage_X;
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_Nom_fichier[13]; // | Repertoire_fichier+"\"+Nom_fichier
GLOBAL byte Principal_Format_fichier; // Format auquel il faut lire et Úcrire le fichier

20
graph.c
View File

@ -4,7 +4,6 @@
#include <math.h>
#include <malloc.h>
#include <sys/sysinfo.h>
#include <string.h>
#include <stdlib.h>
#include "moteur.h"
@ -14,6 +13,13 @@
#include "struct.h"
#include "erreurs.h"
#ifdef __linux__
#include <sys/sysinfo.h>
#elif __WATCOMC__
#define _WIN32_WINNT 0x0500
#include <windows.h>
#endif
byte Meilleure_couleur(byte R,byte V,byte B)
{
short Coul;
@ -399,10 +405,16 @@ unsigned long Memoire_libre(void)
A revoir, mais est-ce vraiment utile?
_heapmin();
*/
#ifdef __linux__
struct sysinfo info;
sysinfo(&info);
return info.freeram*info.mem_unit;
#elif __WATCOMC__
MEMORYSTATUSEX mstt;
mstt.dwLength = sizeof(MEMORYSTATUSEX);
GlobalMemoryStatusEx(&mstt);
return mstt.ullAvailPhys;
#endif
}
@ -3973,9 +3985,7 @@ void Remplir(byte Couleur_de_remplissage)
{
Pos_X-=Brosse_Decalage_X;
Pos_Y-=Brosse_Decalage_Y;
if ( (Pos_X>=0) &&
(Pos_X<Brosse_Largeur) &&
(Pos_Y>=0) &&
if ( (Pos_X<Brosse_Largeur) && // Les pos sont des word donc jamais < 0 ...
(Pos_Y<Brosse_Hauteur) )
Pixel_dans_brosse(Pos_X,Pos_Y,Couleur);
}

41
init.c
View File

@ -21,8 +21,11 @@
#include "divers.h"
#include "errno.h"
#ifdef __linux__
#include <endian.h>
#include <byteswap.h>
#endif
// On déclare méchamment le prototype de Erreur pour éviter de faire un
// fichier "main.h":
@ -249,11 +252,13 @@ void Charger_DAT(void)
case EACCES: puts("La permission de parcours est refusée pour un des répertoires contenu dans le chemin path."); break;
case EBADF: puts("filedes est un mauvais descripteur."); break;
case EFAULT: puts("Un pointeur se trouve en dehors de l'espace d'adressage."); break;
case ELOOP: puts("Trop de liens symboliques rencontrés dans le chemin d'accès."); break;
case ENAMETOOLONG: puts("Nom de fichier trop long."); break;
case ENOENT: puts("Un composant du chemin path n'existe pas, ou il s'agit d'une chaîne vide."); break;
case ENOMEM: puts("Pas assez de mémoire pour le noyau."); break;
case ENOTDIR: puts("Un composant du chemin d'accès n'est pas un répertoire."); break;
#ifdef __linux__
case ELOOP: puts("Trop de liens symboliques rencontrés dans le chemin d'accès."); break;
#endif
}
Taille_fichier=Informations_Fichier.st_size;
if (Taille_fichier!=TAILLE_FICHIER_DATA)
@ -345,11 +350,12 @@ void Charger_DAT(void)
// On lit le nombre de lignes:
if (read(Handle,&Mot_temporaire,2)!=2)
Erreur(ERREUR_DAT_CORROMPU);
#ifndef __WATCOMC__
#if __BYTE_ORDER == __BIG_ENDIAN
//Si on est en big endian il faut échanger les octets car la structure est prévue pour du x86.
Mot_temporaire=bswap_16(Mot_temporaire);
#endif
#endif
// On copie ce nombre de lignes dans la table:
Table_d_aide[Indice].Nombre_de_lignes=Mot_temporaire;
@ -357,11 +363,12 @@ void Charger_DAT(void)
// On lit la place que la section prend en mémoire:
if (read(Handle,&Mot_temporaire,2)!=2)
Erreur(ERREUR_DAT_CORROMPU);
#ifndef __WATCOMC__
#if __BYTE_ORDER == __BIG_ENDIAN
//Si on est en big endian il faut échanger les octets car la structure est prévue pour du x86.
Mot_temporaire=bswap_16(Mot_temporaire);
#endif
#endif
// On alloue la mémoire correspondante:
if (!(Table_d_aide[Indice].Debut_de_la_liste=(byte *)malloc(Mot_temporaire)))
@ -1798,9 +1805,11 @@ int Charger_CFG(int Tout_charger)
while (read(Handle,&(Chunk.Numero),sizeof(byte))==sizeof(byte))
{
read(Handle,&(Chunk.Taille),sizeof(word));
#ifndef __WATCOMC__
#if __BYTE_ORDER == __BIG_ENDIAN
Chunk.Taille=bswap_16(Chunk.Taille);
#endif
#endif
switch (Chunk.Numero)
{
case CHUNK_TOUCHES: // Touches
@ -1814,11 +1823,13 @@ int Charger_CFG(int Tout_charger)
goto Erreur_lecture_config;
else
{
#ifndef __WATCOMC__
#if __BYTE_ORDER == __BIG_ENDIAN
CFG_Infos_touche.Touche=bswap_16(CFG_Infos_touche.Touche);
CFG_Infos_touche.Touche2=bswap_16(CFG_Infos_touche.Touche2);
CFG_Infos_touche.Numero=bswap_16(CFG_Infos_touche.Numero);
#endif
#endif
for (Indice2=0;
((Indice2<NB_TOUCHES) && (Numero_option[Indice2]!=CFG_Infos_touche.Numero));
Indice2++);
@ -2025,10 +2036,12 @@ int Sauver_CFG(void)
// Enregistrement des touches
Chunk.Numero=CHUNK_TOUCHES;
Chunk.Taille=NB_TOUCHES*sizeof(CFG_Infos_touche);
#ifndef __WATCOMC__
#if __BYTE_ORDER == __BIG_ENDIAN
//On remet les octets dans l'ordre "normal"
Chunk.Taille=bswap_16(Chunk.Taille);
#endif
#endif
if (write(Handle,&(Chunk.Numero),sizeof(byte))!=sizeof(byte)||write(Handle,&(Chunk.Taille),sizeof(word))!=sizeof(word))
goto Erreur_sauvegarde_config;
for (Indice=0; Indice<NB_TOUCHES; Indice++)
@ -2041,11 +2054,13 @@ int Sauver_CFG(void)
case 2 : CFG_Infos_touche.Touche=Bouton[Ordonnancement[Indice]&0xFF].Raccourci_droite; break;
}
CFG_Infos_touche.Touche2=0x00FF;
#ifndef __WATCOMC__
#if __BYTE_ORDER == __BIG_ENDIAN
CFG_Infos_touche.Touche=bswap_16(CFG_Infos_touche.Touche);
CFG_Infos_touche.Touche2=bswap_16(CFG_Infos_touche.Touche2);
CFG_Infos_touche.Numero=bswap_16(CFG_Infos_touche.Numero);
#endif
#endif
if (write(Handle,&CFG_Infos_touche,sizeof(CFG_Infos_touche))!=sizeof(CFG_Infos_touche))
goto Erreur_sauvegarde_config;
}
@ -2053,10 +2068,12 @@ int Sauver_CFG(void)
// Sauvegarde de l'état de chaque mode vidéo
Chunk.Numero=CHUNK_MODES_VIDEO;
Chunk.Taille=NB_MODES_VIDEO*5 /*sizeof(CFG_Mode_video)*/;
#ifndef __WATCOMC__
#if __BYTE_ORDER == __BIG_ENDIAN
//On remet les octets dans l'ordre "normal"
Chunk.Taille=bswap_16(Chunk.Taille);
#endif
#endif
if (write(Handle,&(Chunk.Numero),sizeof(byte))!=sizeof(byte)||write(Handle,&(Chunk.Taille),sizeof(word))!=sizeof(word))
goto Erreur_sauvegarde_config;
for (Indice=0; Indice<NB_MODES_VIDEO; Indice++)
@ -2071,10 +2088,12 @@ int Sauver_CFG(void)
// Ecriture des données du Shade (précédées du shade en cours)
Chunk.Numero=CHUNK_SHADE;
Chunk.Taille=sizeof(Shade_Liste)+sizeof(Shade_Actuel);
#ifndef __WATCOMC__
#if __BYTE_ORDER == __BIG_ENDIAN
//On remet les octets dans l'ordre "normal"
Chunk.Taille=bswap_16(Chunk.Taille);
#endif
#endif
if (write(Handle,&(Chunk.Numero),sizeof(byte))!=sizeof(byte)||write(Handle,&(Chunk.Taille),sizeof(word))!=sizeof(word))
goto Erreur_sauvegarde_config;
if (write(Handle,&Shade_Actuel,sizeof(Shade_Actuel))!=sizeof(Shade_Actuel))
@ -2085,10 +2104,12 @@ int Sauver_CFG(void)
// Sauvegarde des informations du Masque
Chunk.Numero=CHUNK_MASQUE;
Chunk.Taille=sizeof(Mask);
#ifndef __WATCOMC__
#if __BYTE_ORDER == __BIG_ENDIAN
//On remet les octets dans l'ordre "normal"
Chunk.Taille=bswap_16(Chunk.Taille);
#endif
#endif
if (write(Handle,&(Chunk.Numero),sizeof(byte))!=sizeof(byte)||write(Handle,&(Chunk.Taille),sizeof(word))!=sizeof(word))
goto Erreur_sauvegarde_config;
if (write(Handle,Mask,sizeof(Mask))!=sizeof(Mask))
@ -2097,10 +2118,12 @@ int Sauver_CFG(void)
// Sauvegarde des informations du Stencil
Chunk.Numero=CHUNK_STENCIL;
Chunk.Taille=sizeof(Stencil);
#ifndef __WATCOMC__
#if __BYTE_ORDER == __BIG_ENDIAN
//On remet les octets dans l'ordre "normal"
Chunk.Taille=bswap_16(Chunk.Taille);
#endif
#endif
if (write(Handle,&(Chunk.Numero),sizeof(byte))!=sizeof(byte)||write(Handle,&(Chunk.Taille),sizeof(word))!=sizeof(word))
goto Erreur_sauvegarde_config;
if (write(Handle,Stencil,sizeof(Stencil))!=sizeof(Stencil))
@ -2109,10 +2132,12 @@ int Sauver_CFG(void)
// Sauvegarde des informations des dégradés
Chunk.Numero=CHUNK_DEGRADES;
Chunk.Taille=sizeof(Degrade_Tableau)+1;
#ifndef __WATCOMC__
#if __BYTE_ORDER == __BIG_ENDIAN
//On remet les octets dans l'ordre "normal"
Chunk.Taille=bswap_16(Chunk.Taille);
#endif
#endif
if (write(Handle,&(Chunk.Numero),sizeof(byte))!=sizeof(byte)||write(Handle,&(Chunk.Taille),sizeof(word))!=sizeof(word))
goto Erreur_sauvegarde_config;
if (write(Handle,&Degrade_Courant,1)!=1)
@ -2130,10 +2155,12 @@ int Sauver_CFG(void)
// Sauvegarde de la matrice du Smooth
Chunk.Numero=CHUNK_SMOOTH;
Chunk.Taille=sizeof(Smooth_Matrice);
#ifndef __WATCOMC__
#if __BYTE_ORDER == __BIG_ENDIAN
//On remet les octets dans l'ordre "normal"
Chunk.Taille=bswap_16(Chunk.Taille);
#endif
#endif
if (write(Handle,&(Chunk.Numero),sizeof(byte))!=sizeof(byte)||write(Handle,&(Chunk.Taille),sizeof(word))!=sizeof(word))
goto Erreur_sauvegarde_config;
if (write(Handle,Smooth_Matrice,sizeof(Smooth_Matrice))!=sizeof(Smooth_Matrice))
@ -2142,10 +2169,12 @@ int Sauver_CFG(void)
// Sauvegarde des couleurs à exclure
Chunk.Numero=CHUNK_EXCLUDE_COLORS;
Chunk.Taille=sizeof(Exclude_color);
#ifndef __WATCOMC__
#if __BYTE_ORDER == __BIG_ENDIAN
//On remet les octets dans l'ordre "normal"
Chunk.Taille=bswap_16(Chunk.Taille);
#endif
#endif
if (write(Handle,&(Chunk.Numero),sizeof(byte))!=sizeof(byte)||write(Handle,&(Chunk.Taille),sizeof(word))!=sizeof(word))
goto Erreur_sauvegarde_config;
if (write(Handle,Exclude_color,sizeof(Exclude_color))!=sizeof(Exclude_color))
@ -2154,10 +2183,12 @@ int Sauver_CFG(void)
// Sauvegarde des informations du Quick-shade
Chunk.Numero=CHUNK_QUICK_SHADE;
Chunk.Taille=sizeof(Quick_shade_Step)+sizeof(Quick_shade_Loop);
#ifndef __WATCOMC__
#if __BYTE_ORDER == __BIG_ENDIAN
//On remet les octets dans l'ordre "normal"
Chunk.Taille=bswap_16(Chunk.Taille);
#endif
#endif
if (write(Handle,&(Chunk.Numero),sizeof(byte))!=sizeof(byte)||write(Handle,&(Chunk.Taille),sizeof(word))!=sizeof(word))
goto Erreur_sauvegarde_config;
if (write(Handle,&Quick_shade_Step,sizeof(Quick_shade_Step))!=sizeof(Quick_shade_Step))
@ -2234,7 +2265,3 @@ void Initialiser_la_table_precalculee_des_distances_de_couleur(void)
}
}
}
#include "readini.c"
#include "saveini.c"

View File

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

View File

@ -16,7 +16,9 @@
#include <unistd.h>
#include "boutons.h"
#ifdef __linux__
#include "linux.h"
#endif
// On déclare méchamment le prototype de Erreur pour éviter de faire un
// fichier "main.h":

24
main.c
View File

@ -16,13 +16,21 @@
#include <time.h>
#include <SDL/SDL.h>
#include <unistd.h>
#include "linux.h" //Fichier avec diverses fonctions qui existaient sous dos mais pas sous linux...
#include "pages.h"
#include "files.h"
#include "loadsave.h"
#include "sdlscreen.h"
#include "erreurs.h"
#ifdef __linux__
#include "linux.h" //Fichier avec diverses fonctions qui existaient sous dos mais pas sous linux...
#elif __WATCOMC__
#include <windows.h>
#include <shlwapi.h>
#define chdir(dir) SetCurrentDirectory(dir)
#define M_PI 3.14159265358979323846
#endif
byte Ancien_nb_lignes; // Ancien nombre de lignes de l'écran
@ -201,9 +209,21 @@ void Analyse_de_la_ligne_de_commande(int argc,char * argv[])
Option2=2;
// On récupère le chemin complet du paramètre
Buffer=realpath(argv[1],NULL);
// Et on découpe ce chemin en répertoire(path) + fichier(.ext)
#ifdef __linux__
Buffer=realpath(argv[1],NULL);
_splitpath(Buffer,Principal_Repertoire_fichier,Principal_Nom_fichier);
#elif __WATCOMC__
Buffer = malloc(MAX_PATH);
PathCanonicalize(Buffer,argv[1]);
_splitpath(Buffer,
Principal_Repertoire_fichier,
Principal_Repertoire_fichier+3,
Principal_Nom_fichier,
Principal_Nom_fichier+8);
free(Buffer);
#endif
// chdir(Principal_Repertoire_fichier);
}
else

View File

@ -12,12 +12,15 @@
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include "linux.h"
#include "boutons.h"
#include "operatio.h"
#include "shade.h"
#include "erreurs.h"
#ifdef __linux__
#include "linux.h"
#endif
//---------- Annuler les effets des modes de dessin (sauf la grille) ---------
// Variables mémorisants les anciens effets

View File

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

View File

@ -6,12 +6,15 @@
#include <string.h>
#include <stdlib.h>
#include "linux.h"
#include "global.h"
#include "pages.h"
#include "graph.h"
#include "erreurs.h"
#ifdef __linux__
include "linux.h"
#endif
///
/// GESTION DES PAGES
///

View File

@ -1 +1,3 @@
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 "graph.h"
#include "divers.h"
#include "erreurs.h"
#ifdef __linux__
#include "linux.h"
void Erreur(int code);
#endif
#define COULEUR_TEXTE CM_Noir
#define COULEUR_FOND CM_Clair

View File

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

View File

@ -4,13 +4,13 @@
#include "divers.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 */
{
*(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 */
{
return *( Ecran + Y * Largeur_ecran + X );
@ -185,7 +185,7 @@ void Remap_screen_SDL (word Pos_X,word Pos_Y,word Largeur,word Hauteur,byte * Ta
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. */
{
memcpy(Ecran+Pos_X+Pos_Y*Largeur_ecran,Ligne,Largeur);
@ -225,11 +225,14 @@ void Afficher_partie_de_l_ecran_zoomee_SDL(
int EDX = 0; // Ligne en cours de traitement
// Pour chaque ligne à zoomer
while(1){
while(1)
{
int CX;
// On éclate la ligne
Zoomer_une_ligne(ESI,Buffer,Loupe_Facteur,Largeur);
// On l'affiche Facteur fois, sur des lignes consécutives
int CX = Loupe_Facteur;
CX = Loupe_Facteur;
// Pour chaque ligne
do{
// On affiche la ligne zoomée
@ -273,13 +276,14 @@ void Display_brush_Mono_zoom_SDL (word Pos_X, word Pos_Y,
//Pour chaque ligne à zoomer :
while(1)
{
int BX;
// ESI = Ligne originale
// On éclate la ligne
Zoomer_une_ligne(ESI,Buffer,Loupe_Facteur,Largeur);
// On affiche la ligne Facteur fois à l'écran (sur des
// lignes consécutives)
int BX = Loupe_Facteur;
BX = Loupe_Facteur;
// Pour chaque ligne écran
do

View File

@ -1,5 +1,8 @@
#include "global.h"
#include "graph.h"
#include "moteur.h"
#include "divers.h"
#include "readline.h"
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