Fix buggy drawing in menu when using shortcuts.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@1211 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
63191fec2f
commit
a055a9a51e
15
engine.c
15
engine.c
@ -208,7 +208,7 @@ int Button_under_mouse(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define Pixel_in_skinmenu(x,y,color) Menu_bars[current_menu].Skin[(y - y_off)*Menu_bars[current_menu].Skin_width + x] = color
|
#define Pixel_in_skinmenu(x,y,color) Menu_bars[current_menu].Skin[(y - y_off)*Menu_bars[current_menu].Skin_width + x] = color
|
||||||
#define Pixel_in_menu_and_skin(x,y,color) Pixel_in_skinmenu(x,y,color); Pixel_in_menu(x,y,color)
|
#define Pixel_in_menu_and_skin(x,y,color) Pixel_in_skinmenu(x,y,color); if(visible) Pixel_in_menu(x,y,color)
|
||||||
|
|
||||||
///Draw the frame for a menu button
|
///Draw the frame for a menu button
|
||||||
void Draw_menu_button_frame(byte btn_number,byte pressed)
|
void Draw_menu_button_frame(byte btn_number,byte pressed)
|
||||||
@ -223,6 +223,7 @@ void Draw_menu_button_frame(byte btn_number,byte pressed)
|
|||||||
word x_pos;
|
word x_pos;
|
||||||
word y_pos;
|
word y_pos;
|
||||||
byte current_menu;
|
byte current_menu;
|
||||||
|
byte visible;
|
||||||
word y_off = 0;
|
word y_off = 0;
|
||||||
|
|
||||||
// Find in which menu the button is
|
// Find in which menu the button is
|
||||||
@ -231,8 +232,18 @@ void Draw_menu_button_frame(byte btn_number,byte pressed)
|
|||||||
if(Menu_bars[current_menu].Visible)
|
if(Menu_bars[current_menu].Visible)
|
||||||
{
|
{
|
||||||
y_off += Menu_bars[current_menu].Height;
|
y_off += Menu_bars[current_menu].Height;
|
||||||
if (Menu_bars[current_menu].Last_button_index >= btn_number)
|
// We found the right bar !
|
||||||
|
if (Menu_bars[current_menu].Last_button_index >= btn_number && (current_menu==0 || Menu_bars[current_menu -1].Last_button_index < btn_number))
|
||||||
|
{
|
||||||
|
visible = 1;
|
||||||
break;
|
break;
|
||||||
|
} else
|
||||||
|
// We missed the bar, it's hidden ! But we still need to draw in the skin...
|
||||||
|
if (Menu_bars[current_menu].Last_button_index > btn_number)
|
||||||
|
{
|
||||||
|
current_menu--; // We can't enter the if with current_menu=0, so that's ok.
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user