CPC Mode 5 fixes :

* Be case unsensitive when looking for the GFX-file,
 * When an underlay is hidden, do not use it and replace it with color 0, 1, 2 or 3. Allows to see pixel data 
alone or disable rasters on one color, as it's possible to get confused quite easily.


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@1964 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Adrien Destugues 2012-06-13 19:50:35 +00:00
parent ba46f1fd21
commit b437d458d4
3 changed files with 25 additions and 9 deletions

View File

@ -3143,7 +3143,8 @@ void Pixel_in_screen_overlay(word x,word y,byte color)
// Paste in depth buffer
*(Main_visible_image_depth_buffer.Image+x+y*Main_image_width)=color;
// Fetch pixel color from the target raster layer
color=*(Main_backups->Pages->Image[color].Pixels + x+y*Main_image_width);
if (Main_layers_visible & (1 << color))
color=*(Main_backups->Pages->Image[color].Pixels + x+y*Main_image_width);
// Draw that color on the visible image buffer
*(x+y*Main_image_width+Main_screen)=color;
}
@ -3159,7 +3160,8 @@ void Pixel_in_screen_overlay_with_preview(word x,word y,byte color)
// Paste in depth buffer
*(Main_visible_image_depth_buffer.Image+x+y*Main_image_width)=color;
// Fetch pixel color from the target raster layer
color=*(Main_backups->Pages->Image[color].Pixels + x+y*Main_image_width);
if (Main_layers_visible & (1 << color))
color=*(Main_backups->Pages->Image[color].Pixels + x+y*Main_image_width);
// Draw that color on the visible image buffer
*(x+y*Main_image_width+Main_screen)=color;

View File

@ -3101,14 +3101,25 @@ void Load_CM5(T_IO_Context* context)
fclose(file);
// Load the pixeldata to the 5th layer
filename[strlen(filename) - 3] = 0;
strcat(filename,"gfx");
if (!(file = fopen(filename, "rb")))
{
File_error = 1;
return;
}
char* ext = filename + strlen(filename) - 3;
int idx = 8;
do {
if (-- idx < 0)
{
File_error = 1;
return;
}
ext[0] = (idx & 1) ? 'g':'G';
ext[1] = (idx & 2) ? 'f':'F';
ext[2] = (idx & 4) ? 'x':'X';
printf("trying to load %s...\n", filename);
file = fopen(filename, "rb");
} while(file == NULL);
}
Set_loading_layer(context, 4);
for (ty = 0; ty < 256; ty++)

View File

@ -212,7 +212,10 @@ void Redraw_layered_image(void)
for (i=0; i< Main_image_width*Main_image_height; i++)
{
layer = *(Main_backups->Pages->Image[4].Pixels+i);
Main_visible_image.Image[i]=*(Main_backups->Pages->Image[layer].Pixels+i);
if (Main_layers_visible & (1 << layer))
Main_visible_image.Image[i]=*(Main_backups->Pages->Image[layer].Pixels+i);
else
Main_visible_image.Image[i] = layer;
}
// Copy it to the depth buffer