Fixed many refresh problems in the Sieve menu, plus older logic bugs.

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@254 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Yves Rizoud 2008-10-14 19:54:22 +00:00
parent ff9fc1633b
commit 7ca68f33d0
2 changed files with 38 additions and 4 deletions

View File

@ -4945,6 +4945,12 @@ void Inverser_trame(void)
Trame[Pos_X][Pos_Y]=!(Trame[Pos_X][Pos_Y]); Trame[Pos_X][Pos_Y]=!(Trame[Pos_X][Pos_Y]);
} }
// Rafraichit toute la zone correspondant à la trame zoomee.
void Mettre_a_jour_trame(short X, short Y)
{
SDL_UpdateRect(Ecran_SDL,X,Y,80*Menu_Facteur_X,80*Menu_Facteur_Y);
}
void Bouton_Trame_Menu(void) void Bouton_Trame_Menu(void)
{ {
@ -5035,6 +5041,10 @@ void Bouton_Trame_Menu(void)
{ {
Bouton_clicke=Fenetre_Bouton_clicke(); Bouton_clicke=Fenetre_Bouton_clicke();
Orig_X=Fenetre_Pos_X+(Menu_Facteur_X*Fenetre_Liste_boutons_special->Pos_X);
Orig_Y=Fenetre_Pos_Y+(Menu_Facteur_Y*Fenetre_Liste_boutons_special->Pos_Y);
switch (Bouton_clicke) switch (Bouton_clicke)
{ {
case -1 : case -1 :
@ -5074,10 +5084,10 @@ void Bouton_Trame_Menu(void)
Block(Orig_X+(Old_Pos_X*Pos_X), Orig_Y+(Old_Pos_Y*Pos_Y), Block(Orig_X+(Old_Pos_X*Pos_X), Orig_Y+(Old_Pos_Y*Pos_Y),
Pos_X-Menu_Facteur_X, Pos_Y-Menu_Facteur_Y, Temp); Pos_X-Menu_Facteur_X, Pos_Y-Menu_Facteur_Y, Temp);
// Mise à jour de la preview // Mise à jour de la preview
for (Pos_Y=Preview_Debut_Y+Old_Pos_Y; Pos_Y<Preview_Fin_Y; Pos_Y+=Trame_Hauteur) Dessiner_trame_zoomee(Orig_X,Orig_Y);
for (Pos_X=Preview_Debut_X+Old_Pos_X; Pos_X<Preview_Fin_X; Pos_X+=Trame_Largeur)
Pixel(Pos_X,Pos_Y,Temp);
Afficher_curseur(); Afficher_curseur();
// Maj de la case seule
SDL_UpdateRect(Ecran_SDL,Orig_X+(Old_Pos_X*Pos_X), Orig_Y+(Old_Pos_Y*Pos_Y),Menu_Facteur_X*5,Menu_Facteur_Y*5);
} }
} }
break; break;
@ -5091,6 +5101,7 @@ void Bouton_Trame_Menu(void)
memset(Trame,Octet_insere,256); memset(Trame,Octet_insere,256);
Dessiner_trame_zoomee(Orig_X,Orig_Y); Dessiner_trame_zoomee(Orig_X,Orig_Y);
Afficher_curseur(); Afficher_curseur();
Mettre_a_jour_trame(Orig_X, Orig_Y);
break; break;
case 5 : // Invert case 5 : // Invert
@ -5098,6 +5109,7 @@ void Bouton_Trame_Menu(void)
Inverser_trame(); Inverser_trame();
Dessiner_trame_zoomee(Orig_X,Orig_Y); Dessiner_trame_zoomee(Orig_X,Orig_Y);
Afficher_curseur(); Afficher_curseur();
Mettre_a_jour_trame(Orig_X, Orig_Y);
break; break;
case 6 : // Get from brush case 6 : // Get from brush
@ -5108,11 +5120,17 @@ void Bouton_Trame_Menu(void)
for (Pos_X=0; Pos_X<Trame_Largeur; Pos_X++) for (Pos_X=0; Pos_X<Trame_Largeur; Pos_X++)
Trame[Pos_X][Pos_Y]=(Lit_pixel_dans_brosse(Pos_X,Pos_Y)!=Back_color); Trame[Pos_X][Pos_Y]=(Lit_pixel_dans_brosse(Pos_X,Pos_Y)!=Back_color);
Dessiner_trame_zoomee(Orig_X,Orig_Y); Dessiner_trame_zoomee(Orig_X,Orig_Y);
Num2str(Trame_Hauteur,Chaine,2);
Print_dans_fenetre(71,136,Chaine,CM_Noir,CM_Clair);
Num2str(Trame_Largeur,Chaine,2);
Print_dans_fenetre(71,120,Chaine,CM_Noir,CM_Clair);
Afficher_curseur(); Afficher_curseur();
Mettre_a_jour_trame(Orig_X, Orig_Y);
break; break;
case 7 : // Transfer to brush case 7 : // Transfer to brush
free(Brosse); if (Brosse)
free(Brosse);
Brosse_Largeur=Trame_Largeur; Brosse_Largeur=Trame_Largeur;
Brosse_Hauteur=Trame_Hauteur; Brosse_Hauteur=Trame_Hauteur;
Brosse=(byte *)malloc(((long)Brosse_Hauteur)*Brosse_Largeur); Brosse=(byte *)malloc(((long)Brosse_Hauteur)*Brosse_Largeur);
@ -5121,6 +5139,7 @@ void Bouton_Trame_Menu(void)
Pixel_dans_brosse(Pos_X,Pos_Y,(Trame[Pos_X][Pos_Y])?Fore_color:Back_color); Pixel_dans_brosse(Pos_X,Pos_Y,(Trame[Pos_X][Pos_Y])?Fore_color:Back_color);
Brosse_Decalage_X=(Brosse_Largeur>>1); Brosse_Decalage_X=(Brosse_Largeur>>1);
Brosse_Decalage_Y=(Brosse_Hauteur>>1); Brosse_Decalage_Y=(Brosse_Hauteur>>1);
Changer_la_forme_du_pinceau(FORME_PINCEAU_BROSSE_COULEUR);
break; break;
case 8 : // Réduire hauteur case 8 : // Réduire hauteur
@ -5132,6 +5151,7 @@ void Bouton_Trame_Menu(void)
Print_dans_fenetre(71,136,Chaine,CM_Noir,CM_Clair); Print_dans_fenetre(71,136,Chaine,CM_Noir,CM_Clair);
Dessiner_trame_zoomee(Orig_X,Orig_Y); Dessiner_trame_zoomee(Orig_X,Orig_Y);
Afficher_curseur(); Afficher_curseur();
Mettre_a_jour_trame(Orig_X, Orig_Y);
} }
break; break;
@ -5146,6 +5166,7 @@ void Bouton_Trame_Menu(void)
Print_dans_fenetre(71,136,Chaine,CM_Noir,CM_Clair); Print_dans_fenetre(71,136,Chaine,CM_Noir,CM_Clair);
Dessiner_trame_zoomee(Orig_X,Orig_Y); Dessiner_trame_zoomee(Orig_X,Orig_Y);
Afficher_curseur(); Afficher_curseur();
Mettre_a_jour_trame(Orig_X, Orig_Y);
} }
break; break;
@ -5158,6 +5179,7 @@ void Bouton_Trame_Menu(void)
Print_dans_fenetre(71,120,Chaine,CM_Noir,CM_Clair); Print_dans_fenetre(71,120,Chaine,CM_Noir,CM_Clair);
Dessiner_trame_zoomee(Orig_X,Orig_Y); Dessiner_trame_zoomee(Orig_X,Orig_Y);
Afficher_curseur(); Afficher_curseur();
Mettre_a_jour_trame(Orig_X, Orig_Y);
} }
break; break;
@ -5172,6 +5194,7 @@ void Bouton_Trame_Menu(void)
Print_dans_fenetre(71,120,Chaine,CM_Noir,CM_Clair); Print_dans_fenetre(71,120,Chaine,CM_Noir,CM_Clair);
Dessiner_trame_zoomee(Orig_X,Orig_Y); Dessiner_trame_zoomee(Orig_X,Orig_Y);
Afficher_curseur(); Afficher_curseur();
Mettre_a_jour_trame(Orig_X, Orig_Y);
} }
break; break;
@ -5182,6 +5205,12 @@ void Bouton_Trame_Menu(void)
Fenetre_Pos_Y+(Menu_Facteur_Y*(Bouton_Octet_insere->Pos_Y+2)), Fenetre_Pos_Y+(Menu_Facteur_Y*(Bouton_Octet_insere->Pos_Y+2)),
Menu_Facteur_X*7, Menu_Facteur_Y*7, (Octet_insere)?CM_Blanc:CM_Noir); Menu_Facteur_X*7, Menu_Facteur_Y*7, (Octet_insere)?CM_Blanc:CM_Noir);
Afficher_curseur(); Afficher_curseur();
SDL_UpdateRect(Ecran_SDL,
Fenetre_Pos_X+(Menu_Facteur_X*(Bouton_Octet_insere->Pos_X+2)),
Fenetre_Pos_Y+(Menu_Facteur_Y*(Bouton_Octet_insere->Pos_Y+2)),
Menu_Facteur_X*7,
Menu_Facteur_Y*7);
break; break;
case 13 : // Scroll vers le haut case 13 : // Scroll vers le haut
@ -5195,6 +5224,7 @@ void Bouton_Trame_Menu(void)
} }
Dessiner_trame_zoomee(Orig_X,Orig_Y); Dessiner_trame_zoomee(Orig_X,Orig_Y);
Afficher_curseur(); Afficher_curseur();
Mettre_a_jour_trame(Orig_X, Orig_Y);
break; break;
case 14 : // Scroll vers le bas case 14 : // Scroll vers le bas
@ -5208,6 +5238,7 @@ void Bouton_Trame_Menu(void)
} }
Dessiner_trame_zoomee(Orig_X,Orig_Y); Dessiner_trame_zoomee(Orig_X,Orig_Y);
Afficher_curseur(); Afficher_curseur();
Mettre_a_jour_trame(Orig_X, Orig_Y);
break; break;
case 15 : // Scroll vers la gauche case 15 : // Scroll vers la gauche
@ -5221,6 +5252,7 @@ void Bouton_Trame_Menu(void)
} }
Dessiner_trame_zoomee(Orig_X,Orig_Y); Dessiner_trame_zoomee(Orig_X,Orig_Y);
Afficher_curseur(); Afficher_curseur();
Mettre_a_jour_trame(Orig_X, Orig_Y);
break; break;
case 16 : // Scroll vers la droite case 16 : // Scroll vers la droite
@ -5234,6 +5266,7 @@ void Bouton_Trame_Menu(void)
} }
Dessiner_trame_zoomee(Orig_X,Orig_Y); Dessiner_trame_zoomee(Orig_X,Orig_Y);
Afficher_curseur(); Afficher_curseur();
Mettre_a_jour_trame(Orig_X, Orig_Y);
break; break;
default : // Boutons de trames prédéfinies default : // Boutons de trames prédéfinies
@ -5246,6 +5279,7 @@ void Bouton_Trame_Menu(void)
Print_dans_fenetre(71,136,Chaine,CM_Noir,CM_Clair); Print_dans_fenetre(71,136,Chaine,CM_Noir,CM_Clair);
Dessiner_trame_zoomee(Orig_X,Orig_Y); Dessiner_trame_zoomee(Orig_X,Orig_Y);
Afficher_curseur(); Afficher_curseur();
Mettre_a_jour_trame(Orig_X, Orig_Y);
} }
if (Touche==Bouton[BOUTON_AIDE].Raccourci_gauche) if (Touche==Bouton[BOUTON_AIDE].Raccourci_gauche)
Fenetre_aide(BOUTON_EFFETS, "SIEVE"); Fenetre_aide(BOUTON_EFFETS, "SIEVE");

BIN
gfx2.cfg

Binary file not shown.