diff --git a/graph.c b/graph.c index 52eb74ad..9371cdcd 100644 --- a/graph.c +++ b/graph.c @@ -364,7 +364,9 @@ void Remapper_ecran_apres_changement_couleurs_menu(void) Mais ça va être chiant parce qu'ils peuvent être affichés en mode Loupe. Mais de toutes façons, c'est franchement facultatif... */ + Remappe_fond_fenetres(Table_de_conversion); } + } diff --git a/moteur.c b/moteur.c index eb00fd8e..1e0b11f3 100644 --- a/moteur.c +++ b/moteur.c @@ -1947,8 +1947,31 @@ short Fenetre_Bouton_clicke(void) return 0; } - - - //int Moteur_Dernier_bouton_clicke; //int Moteur_Type_dernier_bouton_clicke; + +// Fonction qui sert à remapper les parties sauvegardées derriere les +// fenetres ouvertes. C'est utilisé par exemple par la fenetre de palette +// Qui remappe des couleurs, afin de propager les changements. +void Remappe_fond_fenetres(byte * Table_de_conversion) +{ + int Indice_fenetre; + byte* EDI; + int dx,cx; + + for (Indice_fenetre=0; Indice_fenetre0;dx--) + { + // Pour chaque pixel + for(cx=Pile_Fenetre_Largeur[Indice_fenetre];cx>0;cx--) + { + *EDI = Table_de_conversion[*EDI]; + EDI ++; + } + } + } +} diff --git a/moteur.h b/moteur.h index 0a0d20ca..2c35ba56 100644 --- a/moteur.h +++ b/moteur.h @@ -65,3 +65,4 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click); short Fenetre_Bouton_clicke(void); int Numero_bouton_sous_souris(void); short Fenetre_Numero_bouton_clicke(void); +void Remappe_fond_fenetres(byte * Table_de_conversion); diff --git a/palette.c b/palette.c index bc625c8d..8c3f342c 100644 --- a/palette.c +++ b/palette.c @@ -199,10 +199,11 @@ void Remap_image_HIGH(byte * Table_de_conversion) (Principal_Split+(LARGEUR_BARRE_SPLIT*Menu_Facteur_X)), Menu_Ordonnee_avant_fenetre,Table_de_conversion); } + // Remappe tous les fonds de fenetre (qui doivent contenir un bout d'écran) + Remappe_fond_fenetres(Table_de_conversion); } - void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc,T_Palette Palette, dword * Utilisation_couleur) { short Pos_1; @@ -314,7 +315,9 @@ void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc, Set_palette(Palette); if (X_Swap) + { Remap_image_HIGH(Table_de_conversion); + } } @@ -381,7 +384,6 @@ void Remettre_proprement_les_couleurs_du_menu(dword * Utilisation_couleur) // On fait un changement des couleurs visibles à l'écran et dans l'image Remap_image_HIGH(Table_de_remplacement); - Afficher_curseur(); }