Filling works ! *NEVER* put a ; after a for() !
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@77 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
0bd265706a
commit
1f15bfbc3f
37
divers.c
37
divers.c
@ -416,8 +416,8 @@ void Copier_une_partie_d_image_dans_une_autre(byte * Source,word S_Pos_X,word S_
|
|||||||
memcpy(edi,esi,Largeur);
|
memcpy(edi,esi,Largeur);
|
||||||
|
|
||||||
// Passe à la ligne suivante
|
// Passe à la ligne suivante
|
||||||
esi+=Largeur_source - Largeur;
|
esi+=Largeur_source;
|
||||||
edi+=Largeur_destination - Largeur;
|
edi+=Largeur_destination;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -491,35 +491,28 @@ void Clip_mouse(void)
|
|||||||
|
|
||||||
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
|
|
||||||
byte* esi = Principal_Ecran + Limite_Gauche +
|
|
||||||
Limite_Haut * Principal_Largeur_image;
|
|
||||||
|
|
||||||
// EDI pointe sur la position actuelle dans l'écran
|
|
||||||
byte* edi = esi;
|
|
||||||
|
|
||||||
// On place dans CX le nombre de lignes à traiter
|
|
||||||
int Ligne;
|
int Ligne;
|
||||||
int Compteur;
|
int Compteur;
|
||||||
|
byte* Adresse;
|
||||||
|
|
||||||
|
byte Ancien;
|
||||||
|
|
||||||
|
DEBUG("Haut",Limite_Haut);
|
||||||
|
DEBUG("Bas",Limite_Bas);
|
||||||
|
DEBUG("Gauche",Limite_Gauche);
|
||||||
|
DEBUG("Droite",Limite_Droite);
|
||||||
|
|
||||||
// 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);
|
Adresse = Principal_Ecran+Ligne*Principal_Largeur_image+Compteur;
|
||||||
*edi = Table_de_remplacement[*edi];
|
Ancien=*Adresse;
|
||||||
edi++;
|
*Adresse = Table_de_remplacement[Ancien];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Passage à la ligne suivante
|
|
||||||
esi += Principal_Largeur_image;
|
|
||||||
edi = esi;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DEBUG("Ligne",Ligne);
|
|
||||||
DEBUG("Compteur",Compteur);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
byte Lit_pixel_dans_ecran_backup (word X,word Y)
|
byte Lit_pixel_dans_ecran_backup (word X,word Y)
|
||||||
|
|||||||
24
graph.c
24
graph.c
@ -3119,6 +3119,7 @@ void Fenetre_Afficher_sprite_drive(word Pos_X,word Pos_Y,byte Type)
|
|||||||
for (j=0; j<HAUTEUR_SPRITE_DRIVE; j++)
|
for (j=0; j<HAUTEUR_SPRITE_DRIVE; j++)
|
||||||
for (i=0; i<LARGEUR_SPRITE_DRIVE; i++)
|
for (i=0; i<LARGEUR_SPRITE_DRIVE; i++)
|
||||||
Pixel_dans_fenetre(Pos_X+i,Pos_Y+j,SPRITE_DRIVE[Type][j][i]);
|
Pixel_dans_fenetre(Pos_X+i,Pos_Y+j,SPRITE_DRIVE[Type][j][i]);
|
||||||
|
SDL_UpdateRect(Ecran_SDL,ToWinX(Pos_X),ToWinY(Pos_Y),ToWinL(LARGEUR_SPRITE_DRIVE),ToWinH(HAUTEUR_SPRITE_DRIVE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -3845,12 +3846,11 @@ void Remplir(byte Couleur_de_remplissage)
|
|||||||
|
|
||||||
// On va maintenant "épurer" la zone visible de l'image:
|
// On va maintenant "épurer" la zone visible de l'image:
|
||||||
memset(Table_de_remplacement,0,256);
|
memset(Table_de_remplacement,0,256);
|
||||||
DEBUG("Num couleur",Lit_pixel_dans_ecran_courant(Pinceau_X,Pinceau_Y));
|
|
||||||
Table_de_remplacement[Lit_pixel_dans_ecran_courant(Pinceau_X,Pinceau_Y)]=1;
|
Table_de_remplacement[Lit_pixel_dans_ecran_courant(Pinceau_X,Pinceau_Y)]=1;
|
||||||
Remplacer_toutes_les_couleurs_dans_limites(Table_de_remplacement);
|
Remplacer_toutes_les_couleurs_dans_limites(Table_de_remplacement);
|
||||||
|
|
||||||
// On fait maintenant un remplissage classique de la couleur 1 avec la 2
|
// On fait maintenant un remplissage classique de la couleur 1 avec la 2
|
||||||
Fill(&Limite_atteinte_Haut ,&Limite_atteinte_Bas,
|
Fill(&Limite_atteinte_Haut ,&Limite_atteinte_Bas,
|
||||||
&Limite_atteinte_Gauche,&Limite_atteinte_Droite);
|
&Limite_atteinte_Gauche,&Limite_atteinte_Droite);
|
||||||
|
|
||||||
// On s'apprête à faire des opérations qui nécessitent un affichage. Il
|
// On s'apprête à faire des opérations qui nécessitent un affichage. Il
|
||||||
@ -3861,12 +3861,14 @@ void Remplir(byte Couleur_de_remplissage)
|
|||||||
// Il va maintenant falloir qu'on "turn" ce gros caca "into" un truc qui
|
// Il va maintenant falloir qu'on "turn" ce gros caca "into" un truc qui
|
||||||
// ressemble un peu plus à ce à quoi l'utilisateur peut s'attendre.
|
// ressemble un peu plus à ce à quoi l'utilisateur peut s'attendre.
|
||||||
if (Limite_atteinte_Haut>Limite_Haut)
|
if (Limite_atteinte_Haut>Limite_Haut)
|
||||||
Copier_une_partie_d_image_dans_une_autre(Ecran_backup,
|
Copier_une_partie_d_image_dans_une_autre(Ecran_backup, // Source
|
||||||
Limite_Gauche,Limite_Haut,
|
Limite_Gauche,Limite_Haut, // Pos X et Y dans source
|
||||||
(Limite_Droite-Limite_Gauche)+1,
|
(Limite_Droite-Limite_Gauche)+1, // Largeur copie
|
||||||
Limite_atteinte_Haut-Limite_Haut,
|
Limite_atteinte_Haut-Limite_Haut, // Hauteur copie
|
||||||
Principal_Largeur_image,Principal_Ecran,
|
Principal_Largeur_image, // Largeur de la source
|
||||||
Limite_Gauche,Limite_Haut,Principal_Largeur_image);
|
Principal_Ecran, // Destination
|
||||||
|
Limite_Gauche,Limite_Haut, // Pos X et Y destination
|
||||||
|
Principal_Largeur_image); // Largeur destination
|
||||||
if (Limite_atteinte_Bas<Limite_Bas)
|
if (Limite_atteinte_Bas<Limite_Bas)
|
||||||
Copier_une_partie_d_image_dans_une_autre(Ecran_backup,
|
Copier_une_partie_d_image_dans_une_autre(Ecran_backup,
|
||||||
Limite_Gauche,Limite_atteinte_Bas+1,
|
Limite_Gauche,Limite_atteinte_Bas+1,
|
||||||
@ -3889,12 +3891,6 @@ void Remplir(byte Couleur_de_remplissage)
|
|||||||
Principal_Largeur_image,Principal_Ecran,
|
Principal_Largeur_image,Principal_Ecran,
|
||||||
Limite_atteinte_Droite+1,Limite_atteinte_Haut,Principal_Largeur_image);
|
Limite_atteinte_Droite+1,Limite_atteinte_Haut,Principal_Largeur_image);
|
||||||
|
|
||||||
DEBUG("Haut",Limite_atteinte_Haut);
|
|
||||||
DEBUG("Bas",Limite_atteinte_Bas);
|
|
||||||
|
|
||||||
DEBUG("Gauche",Limite_atteinte_Gauche);
|
|
||||||
DEBUG("Droite",Limite_atteinte_Droite);
|
|
||||||
|
|
||||||
for (Pos_Y=Limite_atteinte_Haut;Pos_Y<=Limite_atteinte_Bas;Pos_Y++)
|
for (Pos_Y=Limite_atteinte_Haut;Pos_Y<=Limite_atteinte_Bas;Pos_Y++)
|
||||||
for (Pos_X=Limite_atteinte_Gauche;Pos_X<=Limite_atteinte_Droite;Pos_X++)
|
for (Pos_X=Limite_atteinte_Gauche;Pos_X<=Limite_atteinte_Droite;Pos_X++)
|
||||||
if (Lit_pixel_dans_ecran_courant(Pos_X,Pos_Y)==2)
|
if (Lit_pixel_dans_ecran_courant(Pos_X,Pos_Y)==2)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user