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);
|
||||
|
||||
// Passe à la ligne suivante
|
||||
esi+=Largeur_source - Largeur;
|
||||
edi+=Largeur_destination - Largeur;
|
||||
esi+=Largeur_source;
|
||||
edi+=Largeur_destination;
|
||||
}
|
||||
|
||||
|
||||
@ -491,35 +491,28 @@ void Clip_mouse(void)
|
||||
|
||||
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 Compteur;
|
||||
byte* Adresse;
|
||||
|
||||
byte Ancien;
|
||||
|
||||
DEBUG("Haut",Limite_Haut);
|
||||
DEBUG("Bas",Limite_Bas);
|
||||
DEBUG("Gauche",Limite_Gauche);
|
||||
DEBUG("Droite",Limite_Droite);
|
||||
|
||||
// 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 :
|
||||
for (Compteur = Limite_Gauche;Compteur < Limite_Droite;Compteur ++);
|
||||
for (Compteur = Limite_Gauche;Compteur <= Limite_Droite;Compteur ++)
|
||||
{
|
||||
if(*edi!=0) DEBUG("c",*edi);
|
||||
*edi = Table_de_remplacement[*edi];
|
||||
edi++;
|
||||
Adresse = Principal_Ecran+Ligne*Principal_Largeur_image+Compteur;
|
||||
Ancien=*Adresse;
|
||||
*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)
|
||||
|
||||
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 (i=0; i<LARGEUR_SPRITE_DRIVE; 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:
|
||||
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;
|
||||
Remplacer_toutes_les_couleurs_dans_limites(Table_de_remplacement);
|
||||
|
||||
// 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);
|
||||
|
||||
// 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
|
||||
// ressemble un peu plus à ce à quoi l'utilisateur peut s'attendre.
|
||||
if (Limite_atteinte_Haut>Limite_Haut)
|
||||
Copier_une_partie_d_image_dans_une_autre(Ecran_backup,
|
||||
Limite_Gauche,Limite_Haut,
|
||||
(Limite_Droite-Limite_Gauche)+1,
|
||||
Limite_atteinte_Haut-Limite_Haut,
|
||||
Principal_Largeur_image,Principal_Ecran,
|
||||
Limite_Gauche,Limite_Haut,Principal_Largeur_image);
|
||||
Copier_une_partie_d_image_dans_une_autre(Ecran_backup, // Source
|
||||
Limite_Gauche,Limite_Haut, // Pos X et Y dans source
|
||||
(Limite_Droite-Limite_Gauche)+1, // Largeur copie
|
||||
Limite_atteinte_Haut-Limite_Haut, // Hauteur copie
|
||||
Principal_Largeur_image, // Largeur de la source
|
||||
Principal_Ecran, // Destination
|
||||
Limite_Gauche,Limite_Haut, // Pos X et Y destination
|
||||
Principal_Largeur_image); // Largeur destination
|
||||
if (Limite_atteinte_Bas<Limite_Bas)
|
||||
Copier_une_partie_d_image_dans_une_autre(Ecran_backup,
|
||||
Limite_Gauche,Limite_atteinte_Bas+1,
|
||||
@ -3889,12 +3891,6 @@ void Remplir(byte Couleur_de_remplissage)
|
||||
Principal_Largeur_image,Principal_Ecran,
|
||||
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_X=Limite_atteinte_Gauche;Pos_X<=Limite_atteinte_Droite;Pos_X++)
|
||||
if (Lit_pixel_dans_ecran_courant(Pos_X,Pos_Y)==2)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user