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