diff --git a/buttons.c b/buttons.c index bee902c2..6b1aba67 100644 --- a/buttons.c +++ b/buttons.c @@ -994,13 +994,6 @@ void Add_font_or_skin(const char *name) } -// declared in windows.c for remap -extern byte Old_black; -extern byte Old_dark; -extern byte Old_light; -extern byte Old_white; -extern byte Old_trans; - // Callback to display a skin name in the list void Draw_one_skin_name(word x, word y, word index, byte highlighted) { @@ -1009,8 +1002,7 @@ void Draw_one_skin_name(word x, word y, word index, byte highlighted) if (Skin_files_list.Nb_elements) { current_item = Get_item_by_index(&Skin_files_list, index); - // We use Old_ colors because previewing a skin mess up MC_ ... - Print_in_window(x,y,current_item->Short_name, Old_black, (highlighted)?Old_dark:Old_light); + Print_in_window(x,y,current_item->Short_name, MC_Black, (highlighted)?MC_Dark:MC_Light); } } @@ -1058,13 +1050,6 @@ void Button_Skins(void) selected_font = Find_file_in_fileselector(&Font_files_list, Config.Font_file); - // Do this before setting up the skin list because it will redraw itself using the old colors... - Old_black = MC_Black; - Old_dark = MC_Dark; - Old_light = MC_Light; - Old_white = MC_White; - Old_trans = MC_Trans; - // -------------------------------------------------------------- @@ -1119,7 +1104,7 @@ void Button_Skins(void) for (y = 14, offs_y = 0; offs_y < 16; offs_y++, y++) for (x = 6, x_pos = 0; x_pos<173; x_pos++, x++) - Pixel_in_window(x, y, Gfx->preview[offs_y][x_pos]); + Pixel_in_window(x, y, Gfx->Preview[offs_y][x_pos]); Update_window_area(0, 0, Window_width, Window_height); @@ -1147,23 +1132,27 @@ void Button_Skins(void) if (gfx == NULL) // Error { Verbose_error_message(Gui_loading_error_message); + // Update preview + Window_rectangle(4, 14, 174, 16, MC_Light); } - - // Update preview - // The new palette is not in place but the skin is loaded using the - // new color indexes, so we have to reverse-remap it... - for (y = 14, offs_y = 0; offs_y < 16; offs_y++, y++) - for (x = 6, x_pos = 0; x_pos<173; x_pos++, x++) - { - if (gfx->preview[offs_y][x_pos] == MC_Black) - Pixel_in_window(x, y, Old_black); - else if (gfx->preview[offs_y][x_pos] == MC_Dark) - Pixel_in_window(x, y, Old_dark); - else if (gfx->preview[offs_y][x_pos] == MC_Light) - Pixel_in_window(x, y, Old_light); - else if (gfx->preview[offs_y][x_pos] == MC_White) - Pixel_in_window(x, y, Old_white); - } + else + { + // Update preview + // The new palette is not in place but the skin is loaded using the + // new color indexes, so we have to reverse-remap it... + for (y = 14, offs_y = 0; offs_y < 16; offs_y++, y++) + for (x = 6, x_pos = 0; x_pos<173; x_pos++, x++) + { + if (gfx->Preview[offs_y][x_pos] == gfx->Color_black) + Pixel_in_window(x, y, MC_Black); + else if (gfx->Preview[offs_y][x_pos] == gfx->Color_dark) + Pixel_in_window(x, y, MC_Dark); + else if (gfx->Preview[offs_y][x_pos] == gfx->Color_white) + Pixel_in_window(x, y, MC_White); + else if (gfx->Preview[offs_y][x_pos] == gfx->Color_light) + Pixel_in_window(x, y, MC_Light); + } + } Update_window_area(4, 14, 174, 16); break; @@ -1192,15 +1181,26 @@ void Button_Skins(void) if(clicked_button == 1) { - byte * new_font; + byte * new_font; - if (gfx != NULL) - { + if (gfx != NULL) + { free(Gfx); Gfx = gfx; free(Config.Skin_file); Config.Skin_file = strdup(skinsdir); + + Config.Fav_menu_colors[0] = gfx->Default_palette[gfx->Color_black]; + Config.Fav_menu_colors[1] = gfx->Default_palette[gfx->Color_dark]; + Config.Fav_menu_colors[2] = gfx->Default_palette[gfx->Color_light]; + Config.Fav_menu_colors[3] = gfx->Default_palette[gfx->Color_white]; + + MC_Black = gfx->Color_black; + MC_Dark = gfx->Color_dark; + MC_Light = gfx->Color_light; + MC_White = gfx->Color_white; + MC_Trans = gfx->Color_trans; } // (Re-)load the selected font new_font = Load_font(Get_item_by_index(&Font_files_list,selected_font)->Full_name); @@ -1223,13 +1223,6 @@ void Button_Skins(void) // and remap the skin Compute_optimal_menu_colors(Main_palette); - } else { - // Get the initial colors back - MC_Black = Old_black; - MC_Dark = Old_dark; - MC_Light = Old_light; - MC_White = Old_white; - MC_Trans = Old_trans; } Close_window(); diff --git a/init.c b/init.c index db239326..da18a635 100644 --- a/init.c +++ b/init.c @@ -123,11 +123,11 @@ byte GUI_seek_right(SDL_Surface *gui, int *start_x, int start_y, byte neutral_co return 1; } -byte Read_GUI_block(SDL_Surface *gui, int start_x, int start_y, void *dest, int width, int height, char * section, int type) +byte Read_GUI_block(T_Gui_skin *gfx, SDL_Surface *gui, int start_x, int start_y, void *dest, int width, int height, char * section, int type) { // type: 0 = normal GUI element, only 4 colors allowed // type: 1 = mouse cursor, 4 colors allowed + transparent - // type: 2 = brush icon or sieve pattern (only MC_White and MC_Trans) + // type: 2 = brush icon or sieve pattern (only gui->Color_white and gui->Color_trans) // type: 3 = raw bitmap (splash screen) byte * dest_ptr=dest; @@ -147,28 +147,28 @@ byte Read_GUI_block(SDL_Surface *gui, int start_x, int start_y, void *dest, int for (x=start_x; xColor_black && color != gfx->Color_dark && color != gfx->Color_light && color != gfx->Color_white)) { sprintf(Gui_loading_error_message, "Error in skin file: Was looking at %d,%d for a %d*%d object (%s) but at %d,%d a pixel was found with color %d which isn't one of the GUI colors (which were detected as %d,%d,%d,%d.\n", - start_x, start_y, height, width, section, x, y, color, MC_Black, MC_Dark, MC_Light, MC_White); + start_x, start_y, height, width, section, x, y, color, gfx->Color_black, gfx->Color_dark, gfx->Color_light, gfx->Color_white); return 1; } - if (type==1 && (color != MC_Black && color != MC_Dark && color != MC_Light && color != MC_White && color != MC_Trans)) + if (type==1 && (color != gfx->Color_black && color != gfx->Color_dark && color != gfx->Color_light && color != gfx->Color_white && color != gfx->Color_trans)) { sprintf(Gui_loading_error_message, "Error in skin file: Was looking at %d,%d for a %d*%d object (%s) but at %d,%d a pixel was found with color %d which isn't one of the mouse colors (which were detected as %d,%d,%d,%d,%d.\n", - start_x, start_y, height, width, section, x, y, color, MC_Black, MC_Dark, MC_Light, MC_White, MC_Trans); + start_x, start_y, height, width, section, x, y, color, gfx->Color_black, gfx->Color_dark, gfx->Color_light, gfx->Color_white, gfx->Color_trans); return 1; } if (type==2) { - if (color != MC_White && color != MC_Trans) + if (color != gfx->Color_white && color != gfx->Color_trans) { sprintf(Gui_loading_error_message, "Error in skin file: Was looking at %d,%d for a %d*%d object (%s) but at %d,%d a pixel was found with color %d which isn't one of the brush colors (which were detected as %d on %d.\n", - start_x, start_y, height, width, section, x, y, color, MC_White, MC_Trans); + start_x, start_y, height, width, section, x, y, color, gfx->Color_white, gfx->Color_trans); return 1; } // Conversion en 0/1 pour les brosses monochromes internes - color = (color != MC_Trans); + color = (color != gfx->Color_trans); } *dest_ptr=color; dest_ptr++; @@ -177,12 +177,12 @@ byte Read_GUI_block(SDL_Surface *gui, int start_x, int start_y, void *dest, int return 0; } -byte Read_GUI_pattern(SDL_Surface *gui, int start_x, int start_y, word *dest, char * section) +byte Read_GUI_pattern(T_Gui_skin *gfx, SDL_Surface *gui, int start_x, int start_y, word *dest, char * section) { byte buffer[256]; int x,y; - if (Read_GUI_block(gui, start_x, start_y, buffer, 16, 16, section, 2)) + if (Read_GUI_block(gfx, gui, start_x, start_y, buffer, 16, 16, section, 2)) return 1; for (y=0; y<16; y++) @@ -209,7 +209,7 @@ void Center_GUI_cursor(T_Gui_skin *gfx, byte *cursor_buffer, int cursor_number) { for (y=0;y<29;y++) { - if (cursor_buffer[y*29+start_x]!=MC_Trans) + if (cursor_buffer[y*29+start_x]!=gfx->Color_trans) { found=1; break; @@ -224,7 +224,7 @@ void Center_GUI_cursor(T_Gui_skin *gfx, byte *cursor_buffer, int cursor_number) { for (x=0;x<29;x++) { - if (cursor_buffer[start_y*29+x]!=MC_Trans) + if (cursor_buffer[start_y*29+x]!=gfx->Color_trans) { found=1; break; @@ -271,8 +271,7 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx) Get_SDL_Palette(SDLPal, gfx->Default_palette); // Carré "noir" - MC_Black = Get_SDL_pixel_8(gui,cursor_x,cursor_y); - Fav_menu_colors[0] = gfx->Default_palette[MC_Black]; + gfx->Color_black = Get_SDL_pixel_8(gui,cursor_x,cursor_y); do { if (++cursor_x>=gui->w) @@ -281,10 +280,9 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx) return 1; } color=Get_SDL_pixel_8(gui,cursor_x,cursor_y); - } while(color==MC_Black); + } while(color==gfx->Color_black); // Carré "foncé" - MC_Dark=color; - Fav_menu_colors[1] = gfx->Default_palette[MC_Dark]; + gfx->Color_dark = color; do { if (++cursor_x>=gui->w) @@ -293,10 +291,9 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx) return 1; } color=Get_SDL_pixel_8(gui,cursor_x,cursor_y); - } while(color==MC_Dark); + } while(color==gfx->Color_dark); // Carré "clair" - MC_Light=color; - Fav_menu_colors[2] = gfx->Default_palette[MC_Light]; + gfx->Color_light = color; do { if (++cursor_x>gui->w) @@ -305,10 +302,9 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx) return 1; } color=Get_SDL_pixel_8(gui,cursor_x,cursor_y); - } while(color==MC_Light); + } while(color==gfx->Color_light); // Carré "blanc" - MC_White=color; - Fav_menu_colors[3] = gfx->Default_palette[MC_White]; + gfx->Color_white = color; do { if (++cursor_x>=gui->w) @@ -317,9 +313,9 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx) return 1; } color=Get_SDL_pixel_8(gui,cursor_x,cursor_y); - } while(color==MC_White); + } while(color==gfx->Color_white); // Carré "transparent" - MC_Trans=color; + gfx->Color_trans=color; do { if (++cursor_x>=gui->w) @@ -328,14 +324,14 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx) return 1; } color=Get_SDL_pixel_8(gui,cursor_x,cursor_y); - } while(color==MC_Trans); + } while(color==gfx->Color_trans); // Reste : couleur neutre neutral_color=color; cursor_x=0; cursor_y=1; - while ((color=Get_SDL_pixel_8(gui,cursor_x,cursor_y))==MC_Black) + while ((color=Get_SDL_pixel_8(gui,cursor_x,cursor_y))==gfx->Color_black) { cursor_y++; if (cursor_y>=gui->h) @@ -348,13 +344,13 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx) // Menu if (GUI_seek_down(gui, &cursor_x, &cursor_y, neutral_color, "menu")) return 1; - if (Read_GUI_block(gui, cursor_x, cursor_y, gfx->Menu_block, MENU_WIDTH, MENU_HEIGHT,"menu",0)) + if (Read_GUI_block(gfx, gui, cursor_x, cursor_y, gfx->Menu_block, MENU_WIDTH, MENU_HEIGHT,"menu",0)) return 1; cursor_x += MENU_WIDTH; if (GUI_seek_right(gui, &cursor_x, cursor_y, neutral_color, "logo")) return 1; - if (Read_GUI_block(gui, cursor_x, cursor_y, gfx->preview, 173, 16, "logo", 0)) + if (Read_GUI_block(gfx, gui, cursor_x, cursor_y, gfx->Preview, 173, 16, "logo", 0)) return 1; cursor_y+=MENU_HEIGHT; @@ -371,7 +367,7 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx) if (GUI_seek_right(gui, &cursor_x, cursor_y, neutral_color, "effect sprite")) return 1; } - if (Read_GUI_block(gui, cursor_x, cursor_y, gfx->Effect_sprite[i], MENU_SPRITE_WIDTH, MENU_SPRITE_HEIGHT, "effect sprite",0)) + if (Read_GUI_block(gfx, gui, cursor_x, cursor_y, gfx->Effect_sprite[i], MENU_SPRITE_WIDTH, MENU_SPRITE_HEIGHT, "effect sprite",0)) return 1; cursor_x+=MENU_SPRITE_WIDTH; } @@ -390,7 +386,7 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx) if (GUI_seek_right(gui, &cursor_x, cursor_y, neutral_color, "mouse cursor")) return 1; } - if (Read_GUI_block(gui, cursor_x, cursor_y, mouse_cursor_area, 29, 29, "mouse cursor",1)) + if (Read_GUI_block(gfx, gui, cursor_x, cursor_y, mouse_cursor_area, 29, 29, "mouse cursor",1)) return 1; Center_GUI_cursor(gfx, (byte *)mouse_cursor_area,i); cursor_x+=29; @@ -410,7 +406,7 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx) if (GUI_seek_right(gui, &cursor_x, cursor_y, neutral_color, "menu sprite")) return 1; } - if (Read_GUI_block(gui, cursor_x, cursor_y, gfx->Menu_sprite[i], MENU_SPRITE_WIDTH, MENU_SPRITE_HEIGHT, "menu sprite",1)) + if (Read_GUI_block(gfx, gui, cursor_x, cursor_y, gfx->Menu_sprite[i], MENU_SPRITE_WIDTH, MENU_SPRITE_HEIGHT, "menu sprite",1)) return 1; cursor_x+=MENU_SPRITE_WIDTH; } @@ -432,7 +428,7 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx) if (GUI_seek_right(gui, &cursor_x, cursor_y, neutral_color, "brush icon")) return 1; } - if (Read_GUI_block(gui, cursor_x, cursor_y, gfx->Paintbrush_sprite[i], PAINTBRUSH_WIDTH, PAINTBRUSH_HEIGHT, "brush icon",2)) + if (Read_GUI_block(gfx, gui, cursor_x, cursor_y, gfx->Paintbrush_sprite[i], PAINTBRUSH_WIDTH, PAINTBRUSH_HEIGHT, "brush icon",2)) return 1; cursor_x+=PAINTBRUSH_WIDTH; } @@ -451,7 +447,7 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx) if (GUI_seek_right(gui, &cursor_x, cursor_y, neutral_color, "sprite drive")) return 1; } - if (Read_GUI_block(gui, cursor_x, cursor_y, gfx->Icon_sprite[i], ICON_SPRITE_WIDTH, ICON_SPRITE_HEIGHT, "sprite drive",1)) + if (Read_GUI_block(gfx, gui, cursor_x, cursor_y, gfx->Icon_sprite[i], ICON_SPRITE_WIDTH, ICON_SPRITE_HEIGHT, "sprite drive",1)) return 1; cursor_x+=ICON_SPRITE_WIDTH; } @@ -461,7 +457,7 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx) if (GUI_seek_down(gui, &cursor_x, &cursor_y, neutral_color, "logo menu")) return 1; - if (Read_GUI_block(gui, cursor_x, cursor_y, gfx->Logo_grafx2, 231, 56, "logo menu",3)) + if (Read_GUI_block(gfx, gui, cursor_x, cursor_y, gfx->Logo_grafx2, 231, 56, "logo menu",3)) return 1; cursor_y+=56; @@ -478,7 +474,7 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx) if (GUI_seek_right(gui, &cursor_x, cursor_y, neutral_color, "sieve pattern")) return 1; } - if (Read_GUI_pattern(gui, cursor_x, cursor_y, gfx->Sieve_pattern[i],"sieve pattern")) + if (Read_GUI_pattern(gfx, gui, cursor_x, cursor_y, gfx->Sieve_pattern[i],"sieve pattern")) return 1; cursor_x+=16; } @@ -500,7 +496,7 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx) if (GUI_seek_right(gui, &cursor_x, cursor_y, neutral_color, "help font (norm)")) return 1; } - if (Read_GUI_block(gui, cursor_x, cursor_y, &(gfx->Help_font_norm[i][0][0]), 6, 8, "help font (norm)",0)) + if (Read_GUI_block(gfx, gui, cursor_x, cursor_y, &(gfx->Help_font_norm[i][0][0]), 6, 8, "help font (norm)",0)) return 1; cursor_x+=6; } @@ -522,7 +518,7 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx) if (GUI_seek_right(gui, &cursor_x, cursor_y, neutral_color, "help font (bold)")) return 1; } - if (Read_GUI_block(gui, cursor_x, cursor_y, &(gfx->Bold_font[i][0][0]), 6, 8, "help font (bold)",0)) + if (Read_GUI_block(gfx, gui, cursor_x, cursor_y, &(gfx->Bold_font[i][0][0]), 6, 8, "help font (bold)",0)) return 1; cursor_x+=6; } @@ -557,15 +553,12 @@ byte Parse_skin(SDL_Surface * gui, T_Gui_skin *gfx) else dest=&(gfx->Help_font_t1[char_1++][0][0]); - if (Read_GUI_block(gui, cursor_x, cursor_y, dest, 6, 8, "help font (title)",0)) + if (Read_GUI_block(gfx, gui, cursor_x, cursor_y, dest, 6, 8, "help font (title)",0)) return 1; cursor_x+=6; } cursor_y+=8; - Current_help_section=0; - Help_position=0; - gfx->Preset_paintbrush_width [ 0]= 1; gfx->Preset_paintbrush_height[ 0]= 1; gfx->Paintbrush_type [ 0]=PAINTBRUSH_SHAPE_SQUARE; diff --git a/main.c b/main.c index 34c76392..3ab7d50a 100644 --- a/main.c +++ b/main.c @@ -550,6 +550,9 @@ int Init_program(int argc,char * argv[]) Analyze_command_line(argc,argv); + Current_help_section=0; + Help_position=0; + // Load sprites, palette etc. strcpy(Gui_skin_file,Config.Skin_file); Gfx = Load_graphics(Gui_skin_file); @@ -562,6 +565,17 @@ int Init_program(int argc,char * argv[]) Error(ERROR_GUI_MISSING); } } + Config.Fav_menu_colors[0] = Gfx->Default_palette[Gfx->Color_black]; + Config.Fav_menu_colors[1] = Gfx->Default_palette[Gfx->Color_dark]; + Config.Fav_menu_colors[2] = Gfx->Default_palette[Gfx->Color_light]; + Config.Fav_menu_colors[3] = Gfx->Default_palette[Gfx->Color_white]; + + MC_Black = Gfx->Color_black; + MC_Dark = Gfx->Color_dark; + MC_Light = Gfx->Color_light; + MC_White = Gfx->Color_white; + MC_Trans = Gfx->Color_trans; + // Infos sur les trames (Sieve) Sieve_mode=0; Copy_preset_sieve(0); diff --git a/palette.c b/palette.c index b308b918..20750ac8 100644 --- a/palette.c +++ b/palette.c @@ -433,9 +433,9 @@ void Set_nice_menu_colors(dword * color_usage,int not_picture) rgb[index].R=Main_palette[color].R; rgb[index].G=Main_palette[color].G; rgb[index].B=Main_palette[color].B; - Main_palette[color].R=Fav_menu_colors[index].R; - Main_palette[color].G=Fav_menu_colors[index].G; - Main_palette[color].B=Fav_menu_colors[index].B; + Main_palette[color].R=Config.Fav_menu_colors[index].R; + Main_palette[color].G=Config.Fav_menu_colors[index].G; + Main_palette[color].B=Config.Fav_menu_colors[index].B; } // Maintenant qu'on a placé notre nouvelle palette, on va chercher quelles diff --git a/struct.h b/struct.h index 81502a07..9867b4dc 100644 --- a/struct.h +++ b/struct.h @@ -427,8 +427,18 @@ typedef struct T_Palette Default_palette; /// Preview for displaying in the skin dialog - byte preview[16][173]; + byte Preview[16][173]; + /// Black GUI color index in skin palette + byte Color_black; + /// Dark GUI color index in skin palette + byte Color_dark; + /// Light GUI color index in skin palette + byte Color_light; + /// White GUI color index in skin palette + byte Color_white; + /// Transparent GUI color index in skin file + byte Color_trans; } T_Gui_skin; diff --git a/windows.c b/windows.c index 9ed71284..3eeabb75 100644 --- a/windows.c +++ b/windows.c @@ -2554,12 +2554,12 @@ void Compute_optimal_menu_colors(T_Components * palette) // Recherche du noir Compute_4_best_colors_for_1_menu_color - (Fav_menu_colors[0].R, Fav_menu_colors[0].G, Fav_menu_colors[0].B,palette,table); + (Config.Fav_menu_colors[0].R, Config.Fav_menu_colors[0].G, Config.Fav_menu_colors[0].B,palette,table); MC_Black=table[0]; // Recherche du blanc Compute_4_best_colors_for_1_menu_color - (Fav_menu_colors[3].R, Fav_menu_colors[3].G, Fav_menu_colors[3].B,palette,table); + (Config.Fav_menu_colors[3].R, Config.Fav_menu_colors[3].G, Config.Fav_menu_colors[3].B,palette,table); if (MC_Black!=table[0]) MC_White=table[0]; else @@ -2567,7 +2567,7 @@ void Compute_optimal_menu_colors(T_Components * palette) // Recherche du gris clair Compute_4_best_colors_for_1_menu_color - (Fav_menu_colors[2].R, Fav_menu_colors[2].G, Fav_menu_colors[2].B,palette,table); + (Config.Fav_menu_colors[2].R, Config.Fav_menu_colors[2].G, Config.Fav_menu_colors[2].B,palette,table); if ( (MC_Black!=table[0]) && (MC_White!=table[0]) ) MC_Light=table[0]; else @@ -2580,7 +2580,7 @@ void Compute_optimal_menu_colors(T_Components * palette) // Recherche du gris foncé Compute_4_best_colors_for_1_menu_color - (Fav_menu_colors[1].R, Fav_menu_colors[1].G, Fav_menu_colors[1].B,palette,table); + (Config.Fav_menu_colors[1].R, Config.Fav_menu_colors[1].G, Config.Fav_menu_colors[1].B,palette,table); if ( (MC_Black!=table[0]) && (MC_White!=table[0]) && (MC_Light!=table[0]) ) MC_Dark=table[0]; else @@ -2678,7 +2678,7 @@ void Remap_menu_sprites() // Skin preview for (j = 0; j < 173; j++) for (i = 0; i < 16; i++) - Remap_pixel(&Gfx->preview[i][j]); + Remap_pixel(&Gfx->Preview[i][j]); } Clear_border(MC_Black); }