Displayable tile grid (Issue 171)
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@1007 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
		
							parent
							
								
									7bfdb28936
								
							
						
					
					
						commit
						d6bf9413bf
					
				@ -3613,6 +3613,13 @@ void Button_Grid_menu(void)
 | 
				
			|||||||
  Display_cursor();
 | 
					  Display_cursor();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Button_Show_grid(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  Show_grid = !Show_grid;
 | 
				
			||||||
 | 
					  Hide_cursor();
 | 
				
			||||||
 | 
					  Display_all_screen();
 | 
				
			||||||
 | 
					  Display_cursor();
 | 
				
			||||||
 | 
					} 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ----------------------- Modifications de brosse ---------------------------
 | 
					// ----------------------- Modifications de brosse ---------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -353,6 +353,11 @@ void Button_Snap_mode(void);
 | 
				
			|||||||
*/
 | 
					*/
 | 
				
			||||||
void Button_Grid_menu(void);
 | 
					void Button_Grid_menu(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*!
 | 
				
			||||||
 | 
					    Callback to toggle the grid visible in the magnified view.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					void Button_Show_grid(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Mode trame (Sieve)
 | 
					// Mode trame (Sieve)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*!
 | 
					/*!
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										3
									
								
								const.h
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								const.h
									
									
									
									
									
								
							@ -33,7 +33,7 @@
 | 
				
			|||||||
#define BETA1                     98    ///< Version number for gfx2.cfg (3/4)
 | 
					#define BETA1                     98    ///< Version number for gfx2.cfg (3/4)
 | 
				
			||||||
#define BETA2                     0     ///< Version number for gfx2.cfg (4/4)
 | 
					#define BETA2                     0     ///< Version number for gfx2.cfg (4/4)
 | 
				
			||||||
#define MAX_VIDEO_MODES           100   ///< Maximum number of video modes Grafx2 can propose.
 | 
					#define MAX_VIDEO_MODES           100   ///< Maximum number of video modes Grafx2 can propose.
 | 
				
			||||||
#define NB_SHORTCUTS              158   ///< Number of actions that can have a key combination associated to it.
 | 
					#define NB_SHORTCUTS              159   ///< Number of actions that can have a key combination associated to it.
 | 
				
			||||||
#define NB_ZOOM_FACTORS           12    ///< Number of zoom levels available in the magnifier.
 | 
					#define NB_ZOOM_FACTORS           12    ///< Number of zoom levels available in the magnifier.
 | 
				
			||||||
#define MENU_WIDTH                254   ///< Width of the menu (not counting the palette)
 | 
					#define MENU_WIDTH                254   ///< Width of the menu (not counting the palette)
 | 
				
			||||||
#define MENU_HEIGHT               44    ///< Height of the menu.
 | 
					#define MENU_HEIGHT               44    ///< Height of the menu.
 | 
				
			||||||
@ -406,6 +406,7 @@ enum SPECIAL_ACTIONS
 | 
				
			|||||||
  SPECIAL_ZOOM_16,
 | 
					  SPECIAL_ZOOM_16,
 | 
				
			||||||
  SPECIAL_ZOOM_18,
 | 
					  SPECIAL_ZOOM_18,
 | 
				
			||||||
  SPECIAL_ZOOM_20,
 | 
					  SPECIAL_ZOOM_20,
 | 
				
			||||||
 | 
					  SPECIAL_SHOW_GRID,
 | 
				
			||||||
  NB_SPECIAL_SHORTCUTS            ///< Number of special shortcuts
 | 
					  NB_SPECIAL_SHORTCUTS            ///< Number of special shortcuts
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										4
									
								
								engine.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								engine.c
									
									
									
									
									
								
							@ -825,6 +825,10 @@ void Main_handler(void)
 | 
				
			|||||||
          Button_Grid_menu();
 | 
					          Button_Grid_menu();
 | 
				
			||||||
          Key=0;
 | 
					          Key=0;
 | 
				
			||||||
          break;
 | 
					          break;
 | 
				
			||||||
 | 
					        case SPECIAL_SHOW_GRID :
 | 
				
			||||||
 | 
					          Button_Show_grid();
 | 
				
			||||||
 | 
					          Key=0;
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
        case SPECIAL_SIEVE_MODE :
 | 
					        case SPECIAL_SIEVE_MODE :
 | 
				
			||||||
          Button_Sieve_mode();
 | 
					          Button_Sieve_mode();
 | 
				
			||||||
          Key=0;
 | 
					          Key=0;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										11
									
								
								gfx2def.ini
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								gfx2def.ini
									
									
									
									
									
								
							@ -328,5 +328,16 @@
 | 
				
			|||||||
  ; want to use.                      | 8x8 utilisée dans les menus.
 | 
					  ; want to use.                      | 8x8 utilisée dans les menus.
 | 
				
			||||||
  ; Default : (empty to let the program choose)
 | 
					  ; Default : (empty to let the program choose)
 | 
				
			||||||
  Font_file = 
 | 
					  Font_file = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ; This determines the color value for the grid. Each pixel of 
 | 
				
			||||||
 | 
					  ; the grid will be displayed by XOR-ing the original color with
 | 
				
			||||||
 | 
					  ; the value of this setting.
 | 
				
			||||||
 | 
					  ; For example, if you always paint 16-color images, you can set it
 | 
				
			||||||
 | 
					  ; to 16 so the color of the grid are 16 for 0, 17 for 1, etc.
 | 
				
			||||||
 | 
					  ; Then you can set colors 16-31 as lighter/darker variants
 | 
				
			||||||
 | 
					  ; of your original palette, resulting in a pretty grid !
 | 
				
			||||||
 | 
					  ;
 | 
				
			||||||
 | 
					  ; Valid values are 1 to 255. 
 | 
				
			||||||
 | 
					  Grid_XOR_color = 255; (Default 255)
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  ; end of configuration
 | 
					  ; end of configuration
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										4
									
								
								global.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								global.h
									
									
									
									
									
								
							@ -138,7 +138,7 @@ GFX2_GLOBAL byte Cursor_in_menu;
 | 
				
			|||||||
/// Boolean, means the cursor was hovering over a menu GUI element.
 | 
					/// Boolean, means the cursor was hovering over a menu GUI element.
 | 
				
			||||||
GFX2_GLOBAL byte Cursor_in_menu_previous;
 | 
					GFX2_GLOBAL byte Cursor_in_menu_previous;
 | 
				
			||||||
/// Storage for the graphics under the mouse cursor. Used by ::Hide_cursor and ::Display_cursor
 | 
					/// Storage for the graphics under the mouse cursor. Used by ::Hide_cursor and ::Display_cursor
 | 
				
			||||||
GFX2_GLOBAL byte CURSOR_BACKGROUND[CURSOR_SPRITE_HEIGHT][CURSOR_SPRITE_WIDTH];
 | 
					GFX2_GLOBAL byte Cursor_background[CURSOR_SPRITE_HEIGHT][CURSOR_SPRITE_WIDTH];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// -- Paintbrush data
 | 
					// -- Paintbrush data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -645,6 +645,8 @@ GFX2_GLOBAL byte Stencil[256];
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
/// Boolean, true when the Grid mode is active.
 | 
					/// Boolean, true when the Grid mode is active.
 | 
				
			||||||
GFX2_GLOBAL byte  Snap_mode;
 | 
					GFX2_GLOBAL byte  Snap_mode;
 | 
				
			||||||
 | 
					/// Boolean, true when the Grid is displayed in zoomed view.
 | 
				
			||||||
 | 
					GFX2_GLOBAL byte  Show_grid;
 | 
				
			||||||
/// Width of the grid in Grid mode.
 | 
					/// Width of the grid in Grid mode.
 | 
				
			||||||
GFX2_GLOBAL word Snap_width;
 | 
					GFX2_GLOBAL word Snap_width;
 | 
				
			||||||
/// Height of the grid in Grid mode.
 | 
					/// Height of the grid in Grid mode.
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										55
									
								
								graph.c
									
									
									
									
									
								
							
							
						
						
									
										55
									
								
								graph.c
									
									
									
									
									
								
							@ -107,6 +107,7 @@ void Update_part_of_screen(short x, short y, short width, short height)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  if(effective_Y + effective_h > Menu_Y)
 | 
					  if(effective_Y + effective_h > Menu_Y)
 | 
				
			||||||
    effective_h = Menu_Y - effective_Y;
 | 
					    effective_h = Menu_Y - effective_Y;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
  /*
 | 
					  /*
 | 
				
			||||||
  SDL_Rect r;
 | 
					  SDL_Rect r;
 | 
				
			||||||
  r.x=effective_X;
 | 
					  r.x=effective_X;
 | 
				
			||||||
@ -136,7 +137,7 @@ void Update_part_of_screen(short x, short y, short width, short height)
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
      effective_X += Main_separator_position + SEPARATOR_WIDTH*Menu_factor_X;
 | 
					      effective_X += Main_separator_position + SEPARATOR_WIDTH*Menu_factor_X;
 | 
				
			||||||
    diff = effective_X+effective_w-Screen_width;
 | 
					    diff = effective_X+effective_w-Min(Screen_width, Main_X_zoom+(Main_image_width-Main_magnifier_offset_X)*Main_magnifier_factor);
 | 
				
			||||||
    if (diff>0)
 | 
					    if (diff>0)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      effective_w -=diff;
 | 
					      effective_w -=diff;
 | 
				
			||||||
@ -153,7 +154,7 @@ void Update_part_of_screen(short x, short y, short width, short height)
 | 
				
			|||||||
        return;
 | 
					        return;
 | 
				
			||||||
      effective_Y = 0;
 | 
					      effective_Y = 0;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    diff = effective_Y+effective_h-Menu_Y;
 | 
					    diff = effective_Y+effective_h-Min(Menu_Y, (Main_image_height-Main_magnifier_offset_Y)*Main_magnifier_factor);
 | 
				
			||||||
    if (diff>0)
 | 
					    if (diff>0)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      effective_h -=diff;
 | 
					      effective_h -=diff;
 | 
				
			||||||
@ -161,6 +162,7 @@ void Update_part_of_screen(short x, short y, short width, short height)
 | 
				
			|||||||
        return;
 | 
					        return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 // Très utile pour le debug :)
 | 
					 // Très utile pour le debug :)
 | 
				
			||||||
    /*SDL_Rect r;
 | 
					    /*SDL_Rect r;
 | 
				
			||||||
    r.x=effective_X;
 | 
					    r.x=effective_X;
 | 
				
			||||||
@ -169,6 +171,7 @@ void Update_part_of_screen(short x, short y, short width, short height)
 | 
				
			|||||||
    r.w=effective_w;
 | 
					    r.w=effective_w;
 | 
				
			||||||
    SDL_FillRect(Screen_SDL,&r,3);*/
 | 
					    SDL_FillRect(Screen_SDL,&r,3);*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Redraw_grid(effective_X,effective_Y,effective_w,effective_h);
 | 
				
			||||||
    Update_rect(effective_X,effective_Y,effective_w,effective_h);
 | 
					    Update_rect(effective_X,effective_Y,effective_w,effective_h);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -999,6 +1002,16 @@ void Fill_general(byte fill_color)
 | 
				
			|||||||
    // par l'utilisation de "Display_pixel()", et que les autres... eh bein
 | 
					    // par l'utilisation de "Display_pixel()", et que les autres... eh bein
 | 
				
			||||||
    // on n'y a jamais touché à l'écran les autres: ils sont donc corrects.
 | 
					    // on n'y a jamais touché à l'écran les autres: ils sont donc corrects.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if(Main_magnifier_mode)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      short w,h;
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					      w=Min(Screen_width-Main_X_zoom, (Main_image_width-Main_magnifier_offset_X)*Main_magnifier_factor);
 | 
				
			||||||
 | 
					      h=Min(Menu_Y, (Main_image_height-Main_magnifier_offset_Y)*Main_magnifier_factor);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      Redraw_grid(Main_X_zoom,0,w,h);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Update_rect(0,0,0,0);
 | 
					    Update_rect(0,0,0,0);
 | 
				
			||||||
    End_of_modification();
 | 
					    End_of_modification();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -2803,3 +2816,41 @@ byte Effect_smooth(word x,word y,__attribute__((unused)) byte color)
 | 
				
			|||||||
    Read_pixel_from_current_screen(x,y); // C'est bien l'écran courant et pas
 | 
					    Read_pixel_from_current_screen(x,y); // C'est bien l'écran courant et pas
 | 
				
			||||||
                                       // l'écran feedback car il s'agit de ne
 | 
					                                       // l'écran feedback car il s'agit de ne
 | 
				
			||||||
}                                      // pas modifier l'écran courant.
 | 
					}                                      // pas modifier l'écran courant.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Horizontal_grid_line(word x_pos,word y_pos,word width)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int x;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for (x=!(x_pos&1);x<width;x+=2)
 | 
				
			||||||
 | 
					    Pixel(x_pos+x, y_pos, *((y_pos-1)*Pixel_height*VIDEO_LINE_WIDTH+x_pos*Pixel_width+Screen_pixels+x*Pixel_width)^Config.Grid_XOR_color);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Vertical_grid_line(word x_pos,word y_pos,word height)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int y;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  for (y=!(y_pos&1);y<height;y+=2)
 | 
				
			||||||
 | 
					    Pixel(x_pos, y_pos+y, *(Screen_pixels+(x_pos*Pixel_width-1)+(y_pos*Pixel_height+y*Pixel_height)*VIDEO_LINE_WIDTH)^Config.Grid_XOR_color);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Tile Grid
 | 
				
			||||||
 | 
					void Redraw_grid(short x, short y, unsigned short w, unsigned short h)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int row, col;
 | 
				
			||||||
 | 
					  if (!Show_grid)
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					  row=y+((Snap_height*1000-(y-0)/Main_magnifier_factor-Main_magnifier_offset_Y+Snap_offset_Y-1)%Snap_height)*Main_magnifier_factor+Main_magnifier_factor-1;
 | 
				
			||||||
 | 
					  while (row < y+h)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    Horizontal_grid_line(x, row, w);
 | 
				
			||||||
 | 
					    row+= Snap_height*Main_magnifier_factor;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  col=x+((Snap_width*1000-(x-Main_X_zoom)/Main_magnifier_factor-Main_magnifier_offset_X+Snap_offset_X-1)%Snap_width)*Main_magnifier_factor+Main_magnifier_factor-1;
 | 
				
			||||||
 | 
					  while (col < x+w)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    Vertical_grid_line(col, y, h);
 | 
				
			||||||
 | 
					    col+= Snap_width*Main_magnifier_factor;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										2
									
								
								graph.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								graph.h
									
									
									
									
									
								
							@ -108,3 +108,5 @@ void Remap_picture(void);
 | 
				
			|||||||
extern Func_pixel Pixel_figure;
 | 
					extern Func_pixel Pixel_figure;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Update_part_of_screen(short x, short y, short width, short height);
 | 
					void Update_part_of_screen(short x, short y, short width, short height);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Redraw_grid(short x, short y, unsigned short w, unsigned short h);
 | 
				
			||||||
 | 
				
			|||||||
@ -170,6 +170,7 @@ static const T_Help_table helptable_help[] =
 | 
				
			|||||||
  HELP_LINK ("Mask menu:           %s",   SPECIAL_MASK_MENU)
 | 
					  HELP_LINK ("Mask menu:           %s",   SPECIAL_MASK_MENU)
 | 
				
			||||||
  HELP_LINK ("Grid mode:           %s",   SPECIAL_GRID_MODE)
 | 
					  HELP_LINK ("Grid mode:           %s",   SPECIAL_GRID_MODE)
 | 
				
			||||||
  HELP_LINK ("Grid menu:           %s",   SPECIAL_GRID_MENU)
 | 
					  HELP_LINK ("Grid menu:           %s",   SPECIAL_GRID_MENU)
 | 
				
			||||||
 | 
					  HELP_LINK ("Grid view:           %s",   SPECIAL_SHOW_GRID)
 | 
				
			||||||
  HELP_LINK ("Sieve mode:          %s",   SPECIAL_SIEVE_MODE)
 | 
					  HELP_LINK ("Sieve mode:          %s",   SPECIAL_SIEVE_MODE)
 | 
				
			||||||
  HELP_LINK ("Sieve menu:          %s",   SPECIAL_SIEVE_MENU)
 | 
					  HELP_LINK ("Sieve menu:          %s",   SPECIAL_SIEVE_MENU)
 | 
				
			||||||
  HELP_LINK ("Invert Sieve:        %s",   SPECIAL_INVERT_SIEVE)
 | 
					  HELP_LINK ("Invert Sieve:        %s",   SPECIAL_INVERT_SIEVE)
 | 
				
			||||||
@ -1485,7 +1486,7 @@ static const T_Help_table helptable_effects[] =
 | 
				
			|||||||
  HELP_BOLD ("LEFT CLICK")
 | 
					  HELP_BOLD ("LEFT CLICK")
 | 
				
			||||||
  HELP_LINK ("(Key: %s)",   SPECIAL_GRID_MODE)
 | 
					  HELP_LINK ("(Key: %s)",   SPECIAL_GRID_MODE)
 | 
				
			||||||
  HELP_TEXT ("")
 | 
					  HELP_TEXT ("")
 | 
				
			||||||
  HELP_TEXT ("Switches the Grid mode.")
 | 
					  HELP_TEXT ("Switches the Snap-to-grid mode.")
 | 
				
			||||||
  HELP_TEXT ("")
 | 
					  HELP_TEXT ("")
 | 
				
			||||||
  HELP_BOLD ("RIGHT CLICK")
 | 
					  HELP_BOLD ("RIGHT CLICK")
 | 
				
			||||||
  HELP_LINK ("(Key: %s)",   SPECIAL_GRID_MENU)
 | 
					  HELP_LINK ("(Key: %s)",   SPECIAL_GRID_MENU)
 | 
				
			||||||
@ -1498,6 +1499,8 @@ static const T_Help_table helptable_effects[] =
 | 
				
			|||||||
  HELP_TEXT ("- dX,dY: Offsets of the grid.")
 | 
					  HELP_TEXT ("- dX,dY: Offsets of the grid.")
 | 
				
			||||||
  HELP_TEXT ("")
 | 
					  HELP_TEXT ("")
 | 
				
			||||||
  HELP_TEXT ("")
 | 
					  HELP_TEXT ("")
 | 
				
			||||||
 | 
					  HELP_LINK ("Show/Hide grid : ", SPECIAL_SHOW_GRID)
 | 
				
			||||||
 | 
					  HELP_TEXT ("")
 | 
				
			||||||
  HELP_TITLE("SIEVE")
 | 
					  HELP_TITLE("SIEVE")
 | 
				
			||||||
  HELP_TEXT (" This effect allows you, by defining a")
 | 
					  HELP_TEXT (" This effect allows you, by defining a")
 | 
				
			||||||
  HELP_TEXT ("pattern, to draw only on   particular points")
 | 
					  HELP_TEXT ("pattern, to draw only on   particular points")
 | 
				
			||||||
 | 
				
			|||||||
@ -1286,6 +1286,14 @@ T_Key_config ConfigKey[NB_SHORTCUTS] = {
 | 
				
			|||||||
  true,
 | 
					  true,
 | 
				
			||||||
  0,
 | 
					  0,
 | 
				
			||||||
  0},
 | 
					  0},
 | 
				
			||||||
 | 
					  {158,
 | 
				
			||||||
 | 
					  "Show/Hide Grid",
 | 
				
			||||||
 | 
					  "Turns on or off the visible grid in ",
 | 
				
			||||||
 | 
					  "the magnified view. Grid cells match",
 | 
				
			||||||
 | 
					  "the size ",
 | 
				
			||||||
 | 
					  true,
 | 
				
			||||||
 | 
					  SDLK_g|MOD_SHIFT|MOD_ALT, // Shift + Alt + G,
 | 
				
			||||||
 | 
					  0},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
word Ordering[NB_SHORTCUTS]=
 | 
					word Ordering[NB_SHORTCUTS]=
 | 
				
			||||||
@ -1448,4 +1456,5 @@ word Ordering[NB_SHORTCUTS]=
 | 
				
			|||||||
  SPECIAL_ZOOM_16,                  /**< Sets zoom factor to 16:1 */
 | 
					  SPECIAL_ZOOM_16,                  /**< Sets zoom factor to 16:1 */
 | 
				
			||||||
  SPECIAL_ZOOM_18,                  /**< Sets zoom factor to 18:1 */
 | 
					  SPECIAL_ZOOM_18,                  /**< Sets zoom factor to 18:1 */
 | 
				
			||||||
  SPECIAL_ZOOM_20,                  /**< Sets zoom factor to 20:1 */
 | 
					  SPECIAL_ZOOM_20,                  /**< Sets zoom factor to 20:1 */
 | 
				
			||||||
 | 
					  SPECIAL_SHOW_GRID,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
@ -366,6 +366,8 @@ void Display_part_of_screen_scaled_double(
 | 
				
			|||||||
      y++;
 | 
					      y++;
 | 
				
			||||||
      if(y==height)
 | 
					      if(y==height)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid(Main_X_zoom,0,
 | 
				
			||||||
 | 
					          width*Main_magnifier_factor,height);
 | 
				
			||||||
        Update_rect(Main_X_zoom,0,
 | 
					        Update_rect(Main_X_zoom,0,
 | 
				
			||||||
          width*Main_magnifier_factor,height);
 | 
					          width*Main_magnifier_factor,height);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
@ -447,6 +449,8 @@ void Display_brush_mono_zoom_double(word x_pos, word y_pos,
 | 
				
			|||||||
      // On vérifie qu'on est pas à la ligne finale
 | 
					      // On vérifie qu'on est pas à la ligne finale
 | 
				
			||||||
      if(y == end_y_pos*ZOOMY)
 | 
					      if(y == end_y_pos*ZOOMY)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid( x_pos, y_pos,
 | 
				
			||||||
 | 
					          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
				
			||||||
        Update_rect( x_pos, y_pos,
 | 
					        Update_rect( x_pos, y_pos,
 | 
				
			||||||
          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
					          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
@ -483,6 +487,8 @@ void Clear_brush_scaled_double(word x_pos,word y_pos,word x_offset,word y_offset
 | 
				
			|||||||
      y++;
 | 
					      y++;
 | 
				
			||||||
      if(y==end_y_pos)
 | 
					      if(y==end_y_pos)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid(x_pos,y_pos,
 | 
				
			||||||
 | 
					          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
				
			||||||
        Update_rect(x_pos,y_pos,
 | 
					        Update_rect(x_pos,y_pos,
 | 
				
			||||||
          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
					          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										6
									
								
								pxquad.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								pxquad.c
									
									
									
									
									
								
							@ -383,6 +383,8 @@ void Display_part_of_screen_scaled_quad(
 | 
				
			|||||||
      y++;
 | 
					      y++;
 | 
				
			||||||
      if(y==height/**ZOOMY*/)
 | 
					      if(y==height/**ZOOMY*/)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid(Main_X_zoom,0,
 | 
				
			||||||
 | 
					          width*Main_magnifier_factor,height);
 | 
				
			||||||
        Update_rect(Main_X_zoom,0,
 | 
					        Update_rect(Main_X_zoom,0,
 | 
				
			||||||
          width*Main_magnifier_factor,height);
 | 
					          width*Main_magnifier_factor,height);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
@ -481,6 +483,8 @@ void Display_brush_mono_zoom_quad(word x_pos, word y_pos,
 | 
				
			|||||||
      // On vérifie qu'on est pas à la ligne finale
 | 
					      // On vérifie qu'on est pas à la ligne finale
 | 
				
			||||||
      if(y == end_y_pos*ZOOMY)
 | 
					      if(y == end_y_pos*ZOOMY)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid( x_pos, y_pos,
 | 
				
			||||||
 | 
					          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
				
			||||||
        Update_rect( x_pos, y_pos,
 | 
					        Update_rect( x_pos, y_pos,
 | 
				
			||||||
          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
					          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
@ -518,6 +522,8 @@ void Clear_brush_scaled_quad(word x_pos,word y_pos,word x_offset,word y_offset,w
 | 
				
			|||||||
      y++;
 | 
					      y++;
 | 
				
			||||||
      if(y==end_y_pos)
 | 
					      if(y==end_y_pos)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid(x_pos,y_pos,
 | 
				
			||||||
 | 
					          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
				
			||||||
        Update_rect(x_pos,y_pos,
 | 
					        Update_rect(x_pos,y_pos,
 | 
				
			||||||
          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
					          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
				
			|||||||
@ -324,6 +324,8 @@ void Display_part_of_screen_scaled_simple(
 | 
				
			|||||||
      y++;
 | 
					      y++;
 | 
				
			||||||
      if(y==height)
 | 
					      if(y==height)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid(Main_X_zoom,0,
 | 
				
			||||||
 | 
					          width*Main_magnifier_factor,height);
 | 
				
			||||||
        Update_rect(Main_X_zoom,0,
 | 
					        Update_rect(Main_X_zoom,0,
 | 
				
			||||||
          width*Main_magnifier_factor,height);
 | 
					          width*Main_magnifier_factor,height);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
@ -421,6 +423,8 @@ void Display_brush_mono_zoom_simple(word x_pos, word y_pos,
 | 
				
			|||||||
      // On vérifie qu'on est pas à la ligne finale
 | 
					      // On vérifie qu'on est pas à la ligne finale
 | 
				
			||||||
      if(y == end_y_pos)
 | 
					      if(y == end_y_pos)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid( x_pos, y_pos,
 | 
				
			||||||
 | 
					          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
				
			||||||
        Update_rect( x_pos, y_pos,
 | 
					        Update_rect( x_pos, y_pos,
 | 
				
			||||||
          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
					          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
@ -456,6 +460,8 @@ void Clear_brush_scaled_simple(word x_pos,word y_pos,word x_offset,word y_offset
 | 
				
			|||||||
      y++;
 | 
					      y++;
 | 
				
			||||||
      if(y==end_y_pos)
 | 
					      if(y==end_y_pos)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid(x_pos,y_pos,
 | 
				
			||||||
 | 
					          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
				
			||||||
        Update_rect(x_pos,y_pos,
 | 
					        Update_rect(x_pos,y_pos,
 | 
				
			||||||
          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
					          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
@ -466,5 +472,3 @@ void Clear_brush_scaled_simple(word x_pos,word y_pos,word x_offset,word y_offset
 | 
				
			|||||||
    src+= image_width;
 | 
					    src+= image_width;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										6
									
								
								pxtall.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								pxtall.c
									
									
									
									
									
								
							@ -325,6 +325,8 @@ void Display_part_of_screen_scaled_tall(
 | 
				
			|||||||
      y++;
 | 
					      y++;
 | 
				
			||||||
      if(y==height*ZOOMY)
 | 
					      if(y==height*ZOOMY)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid(Main_X_zoom,0,
 | 
				
			||||||
 | 
					          width*Main_magnifier_factor,height);
 | 
				
			||||||
        Update_rect(Main_X_zoom,0,
 | 
					        Update_rect(Main_X_zoom,0,
 | 
				
			||||||
          width*Main_magnifier_factor,height);
 | 
					          width*Main_magnifier_factor,height);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
@ -406,6 +408,8 @@ void Display_brush_mono_zoom_tall(word x_pos, word y_pos,
 | 
				
			|||||||
      // On vérifie qu'on est pas à la ligne finale
 | 
					      // On vérifie qu'on est pas à la ligne finale
 | 
				
			||||||
      if(y == end_y_pos*ZOOMY)
 | 
					      if(y == end_y_pos*ZOOMY)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid( x_pos, y_pos,
 | 
				
			||||||
 | 
					          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
				
			||||||
        Update_rect( x_pos, y_pos,
 | 
					        Update_rect( x_pos, y_pos,
 | 
				
			||||||
          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
					          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
@ -441,6 +445,8 @@ void Clear_brush_scaled_tall(word x_pos,word y_pos,word x_offset,word y_offset,w
 | 
				
			|||||||
      y++;
 | 
					      y++;
 | 
				
			||||||
      if(y==end_y_pos)
 | 
					      if(y==end_y_pos)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid(x_pos,y_pos,
 | 
				
			||||||
 | 
					          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
				
			||||||
        Update_rect(x_pos,y_pos,
 | 
					        Update_rect(x_pos,y_pos,
 | 
				
			||||||
          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
					          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
				
			|||||||
@ -375,6 +375,8 @@ void Display_part_of_screen_scaled_tall2(
 | 
				
			|||||||
      y++;
 | 
					      y++;
 | 
				
			||||||
      if(y==height/**ZOOMY*/)
 | 
					      if(y==height/**ZOOMY*/)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid(Main_X_zoom,0,
 | 
				
			||||||
 | 
					          width*Main_magnifier_factor,height);
 | 
				
			||||||
        Update_rect(Main_X_zoom,0,
 | 
					        Update_rect(Main_X_zoom,0,
 | 
				
			||||||
          width*Main_magnifier_factor,height);
 | 
					          width*Main_magnifier_factor,height);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
@ -473,6 +475,8 @@ void Display_brush_mono_zoom_tall2(word x_pos, word y_pos,
 | 
				
			|||||||
      // On vérifie qu'on est pas à la ligne finale
 | 
					      // On vérifie qu'on est pas à la ligne finale
 | 
				
			||||||
      if(y == end_y_pos*ZOOMY)
 | 
					      if(y == end_y_pos*ZOOMY)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid( x_pos, y_pos,
 | 
				
			||||||
 | 
					          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
				
			||||||
        Update_rect( x_pos, y_pos,
 | 
					        Update_rect( x_pos, y_pos,
 | 
				
			||||||
          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
					          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
@ -510,6 +514,8 @@ void Clear_brush_scaled_tall2(word x_pos,word y_pos,word x_offset,word y_offset,
 | 
				
			|||||||
      y++;
 | 
					      y++;
 | 
				
			||||||
      if(y==end_y_pos)
 | 
					      if(y==end_y_pos)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid(x_pos,y_pos,
 | 
				
			||||||
 | 
					          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
				
			||||||
        Update_rect(x_pos,y_pos,
 | 
					        Update_rect(x_pos,y_pos,
 | 
				
			||||||
          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
					          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
				
			|||||||
@ -373,6 +373,8 @@ void Display_part_of_screen_scaled_triple(
 | 
				
			|||||||
      y++;
 | 
					      y++;
 | 
				
			||||||
      if(y==height/**ZOOMY*/)
 | 
					      if(y==height/**ZOOMY*/)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid(Main_X_zoom,0,
 | 
				
			||||||
 | 
					          width*Main_magnifier_factor,height);
 | 
				
			||||||
        Update_rect(Main_X_zoom,0,
 | 
					        Update_rect(Main_X_zoom,0,
 | 
				
			||||||
          width*Main_magnifier_factor,height);
 | 
					          width*Main_magnifier_factor,height);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
@ -469,6 +471,8 @@ void Display_brush_mono_zoom_triple(word x_pos, word y_pos,
 | 
				
			|||||||
      // On vérifie qu'on est pas à la ligne finale
 | 
					      // On vérifie qu'on est pas à la ligne finale
 | 
				
			||||||
      if(y == end_y_pos*ZOOMY)
 | 
					      if(y == end_y_pos*ZOOMY)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid( x_pos, y_pos,
 | 
				
			||||||
 | 
					          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
				
			||||||
        Update_rect( x_pos, y_pos,
 | 
					        Update_rect( x_pos, y_pos,
 | 
				
			||||||
          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
					          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
@ -506,6 +510,8 @@ void Clear_brush_scaled_triple(word x_pos,word y_pos,word x_offset,word y_offset
 | 
				
			|||||||
      y++;
 | 
					      y++;
 | 
				
			||||||
      if(y==end_y_pos)
 | 
					      if(y==end_y_pos)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid(x_pos,y_pos,
 | 
				
			||||||
 | 
					          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
				
			||||||
        Update_rect(x_pos,y_pos,
 | 
					        Update_rect(x_pos,y_pos,
 | 
				
			||||||
          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
					          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										6
									
								
								pxwide.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								pxwide.c
									
									
									
									
									
								
							@ -359,6 +359,8 @@ void Display_part_of_screen_scaled_wide(
 | 
				
			|||||||
      y++;
 | 
					      y++;
 | 
				
			||||||
      if(y==height)
 | 
					      if(y==height)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid(Main_X_zoom,0,
 | 
				
			||||||
 | 
					          width*Main_magnifier_factor,height);
 | 
				
			||||||
        Update_rect(Main_X_zoom,0,
 | 
					        Update_rect(Main_X_zoom,0,
 | 
				
			||||||
          width*Main_magnifier_factor,height);
 | 
					          width*Main_magnifier_factor,height);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
@ -457,6 +459,8 @@ void Display_brush_mono_zoom_wide(word x_pos, word y_pos,
 | 
				
			|||||||
      // On vérifie qu'on est pas à la ligne finale
 | 
					      // On vérifie qu'on est pas à la ligne finale
 | 
				
			||||||
      if(y == end_y_pos*ZOOMY)
 | 
					      if(y == end_y_pos*ZOOMY)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid( x_pos, y_pos,
 | 
				
			||||||
 | 
					          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
				
			||||||
        Update_rect( x_pos, y_pos,
 | 
					        Update_rect( x_pos, y_pos,
 | 
				
			||||||
          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
					          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
@ -492,6 +496,8 @@ void Clear_brush_scaled_wide(word x_pos,word y_pos,word x_offset,word y_offset,w
 | 
				
			|||||||
      y++;
 | 
					      y++;
 | 
				
			||||||
      if(y==end_y_pos)
 | 
					      if(y==end_y_pos)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid(x_pos,y_pos,
 | 
				
			||||||
 | 
					          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
				
			||||||
        Update_rect(x_pos,y_pos,
 | 
					        Update_rect(x_pos,y_pos,
 | 
				
			||||||
          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
					          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
				
			|||||||
@ -369,6 +369,8 @@ void Display_part_of_screen_scaled_wide2(
 | 
				
			|||||||
      y++;
 | 
					      y++;
 | 
				
			||||||
      if(y==height/**ZOOMY*/)
 | 
					      if(y==height/**ZOOMY*/)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid(Main_X_zoom,0,
 | 
				
			||||||
 | 
					          width*Main_magnifier_factor,height);
 | 
				
			||||||
        Update_rect(Main_X_zoom,0,
 | 
					        Update_rect(Main_X_zoom,0,
 | 
				
			||||||
          width*Main_magnifier_factor,height);
 | 
					          width*Main_magnifier_factor,height);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
@ -463,6 +465,8 @@ void Display_brush_mono_zoom_wide2(word x_pos, word y_pos,
 | 
				
			|||||||
      // On vérifie qu'on est pas à la ligne finale
 | 
					      // On vérifie qu'on est pas à la ligne finale
 | 
				
			||||||
      if(y == end_y_pos*ZOOMY)
 | 
					      if(y == end_y_pos*ZOOMY)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid( x_pos, y_pos,
 | 
				
			||||||
 | 
					          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
				
			||||||
        Update_rect( x_pos, y_pos,
 | 
					        Update_rect( x_pos, y_pos,
 | 
				
			||||||
          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
					          width * Main_magnifier_factor, end_y_pos - y_pos );
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
@ -500,6 +504,8 @@ void Clear_brush_scaled_wide2(word x_pos,word y_pos,word x_offset,word y_offset,
 | 
				
			|||||||
      y++;
 | 
					      y++;
 | 
				
			||||||
      if(y==end_y_pos)
 | 
					      if(y==end_y_pos)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
 | 
					        Redraw_grid(x_pos,y_pos,
 | 
				
			||||||
 | 
					          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
				
			||||||
        Update_rect(x_pos,y_pos,
 | 
					        Update_rect(x_pos,y_pos,
 | 
				
			||||||
          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
					          width*Main_magnifier_factor,end_y_pos-y_pos);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
				
			|||||||
@ -826,6 +826,14 @@ int Load_INI(T_Config * conf)
 | 
				
			|||||||
  else
 | 
					  else
 | 
				
			||||||
    conf->Font_file = strdup("font_Classic.png");
 | 
					    conf->Font_file = strdup("font_Classic.png");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  conf->Grid_XOR_color=255;
 | 
				
			||||||
 | 
					  // Optional, XOR color for grid overlay (>2.0)
 | 
				
			||||||
 | 
					  if (!Load_INI_get_values (file,buffer,"Grid_XOR_color",1,values))
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    if ((values[0]>0) || (values[0]<=255))
 | 
				
			||||||
 | 
					      conf->Grid_XOR_color=values[0];
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fclose(file);
 | 
					  fclose(file);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  free(filename);
 | 
					  free(filename);
 | 
				
			||||||
 | 
				
			|||||||
@ -644,6 +644,10 @@ int Save_INI(T_Config * conf)
 | 
				
			|||||||
    
 | 
					    
 | 
				
			||||||
  if ((return_code=Save_INI_set_strings (Ancien_fichier,Nouveau_fichier,buffer,"Font_file",conf->Font_file)))
 | 
					  if ((return_code=Save_INI_set_strings (Ancien_fichier,Nouveau_fichier,buffer,"Font_file",conf->Font_file)))
 | 
				
			||||||
    goto Erreur_Retour;
 | 
					    goto Erreur_Retour;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  values[0]=(conf->Grid_XOR_color);
 | 
				
			||||||
 | 
					  if ((return_code=Save_INI_set_values (Ancien_fichier,Nouveau_fichier,buffer,"Grid_XOR_color",1,values,0)))
 | 
				
			||||||
 | 
					    goto Erreur_Retour;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
  Save_INI_flush(Ancien_fichier,Nouveau_fichier,buffer);
 | 
					  Save_INI_flush(Ancien_fichier,Nouveau_fichier,buffer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										1
									
								
								struct.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								struct.h
									
									
									
									
									
								
							@ -308,6 +308,7 @@ typedef struct
 | 
				
			|||||||
  int  Window_pos_y;                     ///< Last window y position (9999 if unsupportd/irrelevant for the platform)
 | 
					  int  Window_pos_y;                     ///< Last window y position (9999 if unsupportd/irrelevant for the platform)
 | 
				
			||||||
  word Double_click_speed;               ///< Maximum delay for double-click, in ms.
 | 
					  word Double_click_speed;               ///< Maximum delay for double-click, in ms.
 | 
				
			||||||
  word Double_key_speed;                 ///< Maximum delay for double-keypress, in ms.
 | 
					  word Double_key_speed;                 ///< Maximum delay for double-keypress, in ms.
 | 
				
			||||||
 | 
					  byte Grid_XOR_color;                   ///< XOR value to apply for grid color.
 | 
				
			||||||
} T_Config;
 | 
					} T_Config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Structures utilisées pour les descriptions de pages et de liste de pages.
 | 
					// Structures utilisées pour les descriptions de pages et de liste de pages.
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										16
									
								
								windows.c
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								windows.c
									
									
									
									
									
								
							@ -1663,7 +1663,7 @@ void Display_cursor(void)
 | 
				
			|||||||
          	{
 | 
					          	{
 | 
				
			||||||
            	if( x_pos < 0 ) continue;
 | 
					            	if( x_pos < 0 ) continue;
 | 
				
			||||||
              	color=Gfx->Cursor_sprite[temp][counter_y][counter_x];
 | 
					              	color=Gfx->Cursor_sprite[temp][counter_y][counter_x];
 | 
				
			||||||
              	CURSOR_BACKGROUND[counter_y][counter_x]=Read_pixel(x_pos,y_pos);
 | 
					              	Cursor_background[counter_y][counter_x]=Read_pixel(x_pos,y_pos);
 | 
				
			||||||
              	if (color!=MC_Trans)
 | 
					              	if (color!=MC_Trans)
 | 
				
			||||||
                	Pixel(x_pos,y_pos,color);
 | 
					                	Pixel(x_pos,y_pos,color);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@ -1733,8 +1733,8 @@ void Display_cursor(void)
 | 
				
			|||||||
              if(x_pos<0) continue;
 | 
					              if(x_pos<0) continue;
 | 
				
			||||||
              if(x_pos>=Screen_width) break;
 | 
					              if(x_pos>=Screen_width) break;
 | 
				
			||||||
              color=Gfx->Cursor_sprite[temp][counter_y][counter_x];
 | 
					              color=Gfx->Cursor_sprite[temp][counter_y][counter_x];
 | 
				
			||||||
              // On sauvegarde dans CURSOR_BACKGROUND pour restaurer plus tard
 | 
					              // On sauvegarde dans Cursor_background pour restaurer plus tard
 | 
				
			||||||
              CURSOR_BACKGROUND[counter_y][counter_x]=Read_pixel(x_pos,y_pos);
 | 
					              Cursor_background[counter_y][counter_x]=Read_pixel(x_pos,y_pos);
 | 
				
			||||||
              if (color!=MC_Trans)
 | 
					              if (color!=MC_Trans)
 | 
				
			||||||
            	Pixel(x_pos,y_pos,color);
 | 
					            	Pixel(x_pos,y_pos,color);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@ -1762,8 +1762,8 @@ void Display_cursor(void)
 | 
				
			|||||||
        	if(x_pos<0) continue;
 | 
					        	if(x_pos<0) continue;
 | 
				
			||||||
        	if(x_pos>=Screen_width) break;
 | 
					        	if(x_pos>=Screen_width) break;
 | 
				
			||||||
          	color=Gfx->Cursor_sprite[shape][counter_y][counter_x];
 | 
					          	color=Gfx->Cursor_sprite[shape][counter_y][counter_x];
 | 
				
			||||||
          	// On sauvegarde dans CURSOR_BACKGROUND pour restaurer plus tard
 | 
					          	// On sauvegarde dans Cursor_background pour restaurer plus tard
 | 
				
			||||||
          	CURSOR_BACKGROUND[counter_y][counter_x]=Read_pixel(x_pos,y_pos);
 | 
					          	Cursor_background[counter_y][counter_x]=Read_pixel(x_pos,y_pos);
 | 
				
			||||||
          	if (color!=MC_Trans)
 | 
					          	if (color!=MC_Trans)
 | 
				
			||||||
              Pixel(x_pos,y_pos,color);
 | 
					              Pixel(x_pos,y_pos,color);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -1966,7 +1966,7 @@ void Hide_cursor(void)
 | 
				
			|||||||
            {
 | 
					            {
 | 
				
			||||||
              if(x_pos < 0) continue;
 | 
					              if(x_pos < 0) continue;
 | 
				
			||||||
              else if (x_pos>=Screen_width) break;
 | 
					              else if (x_pos>=Screen_width) break;
 | 
				
			||||||
              Pixel(x_pos,y_pos,CURSOR_BACKGROUND[counter_y][counter_x]);
 | 
					              Pixel(x_pos,y_pos,Cursor_background[counter_y][counter_x]);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -2035,7 +2035,7 @@ void Hide_cursor(void)
 | 
				
			|||||||
          	{
 | 
					          	{
 | 
				
			||||||
              if(x_pos<0) continue;
 | 
					              if(x_pos<0) continue;
 | 
				
			||||||
              if(x_pos>=Screen_width) break;
 | 
					              if(x_pos>=Screen_width) break;
 | 
				
			||||||
                  Pixel(x_pos,y_pos,CURSOR_BACKGROUND[counter_y][counter_x]);
 | 
					                  Pixel(x_pos,y_pos,Cursor_background[counter_y][counter_x]);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
          Update_rect(Max(start_x,0),Max(start_y,0),counter_x,counter_y);
 | 
					          Update_rect(Max(start_x,0),Max(start_y,0),counter_x,counter_y);
 | 
				
			||||||
@ -2063,7 +2063,7 @@ void Hide_cursor(void)
 | 
				
			|||||||
      	{
 | 
					      	{
 | 
				
			||||||
        	if(x_pos<0) continue;
 | 
					        	if(x_pos<0) continue;
 | 
				
			||||||
        	if(x_pos>=Screen_width) break;
 | 
					        	if(x_pos>=Screen_width) break;
 | 
				
			||||||
            Pixel(x_pos,y_pos,CURSOR_BACKGROUND[counter_y][counter_x]);
 | 
					            Pixel(x_pos,y_pos,Cursor_background[counter_y][counter_x]);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      Update_rect(Max(start_x,0),Max(start_y,0),counter_x,counter_y);
 | 
					      Update_rect(Max(start_x,0),Max(start_y,0),counter_x,counter_y);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user