Work in progress, quick push...
This commit is contained in:
parent
4bfc09dc08
commit
72605d02de
@ -62,7 +62,7 @@ package body ai is
|
||||
--~x : integer := (core.window_width - width) / 2;
|
||||
--~y : integer := (core.window_height - height) / 2;
|
||||
begin
|
||||
--~ui.draw_tiny_menu (x, y, width, height, true);
|
||||
--~ui.draw_tiny_menu (x, y, width, height);
|
||||
--~for index in 1 .. actor_count loop
|
||||
--~core.write ("Bot" & index'image, x + offset + 0, y * index + offset, ui.glyphs (ui.active));
|
||||
--~core.write ("T =" & actor_is_thirsty (index)'image, x + offset + 120, y * index + offset, ui.glyphs (ui.active));
|
||||
@ -80,7 +80,7 @@ package body ai is
|
||||
x : integer := (core.window_width - width) / 2;
|
||||
y : integer := (core.window_height - height) / 2;
|
||||
begin
|
||||
ui.draw_tiny_menu (x, y, width, height, true);
|
||||
ui.draw_tiny_menu (x, y, width, height);
|
||||
--
|
||||
active := index;
|
||||
--
|
||||
|
@ -30,7 +30,7 @@ package body attribute is
|
||||
move_x : constant integer := (if center then (core.window_width - width) / 2 else x);
|
||||
move_y : constant integer := (if center then (core.window_height - height) / 2 else y);
|
||||
begin
|
||||
ui.draw_tiny_menu (move_x, move_y, width, height, true);
|
||||
ui.draw_tiny_menu (move_x, move_y, width, height);
|
||||
ui.draw_title_bar (move_x, move_y, width, "Attributes");
|
||||
--
|
||||
for index in enumeration loop
|
||||
|
@ -34,8 +34,7 @@ package body magic is
|
||||
|
||||
procedure icon (index : in enumeration; x, y : in integer) is
|
||||
begin
|
||||
core.draw (icon_sprite (index), x + 2, y + 2);
|
||||
ui.draw_overicon (trait (index).text, x, y);
|
||||
ui.draw_overicon (icon_sprite (index), trait (index).text, x, y);
|
||||
end icon;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
@ -58,7 +57,7 @@ package body magic is
|
||||
--
|
||||
next : array (0 .. 7) of integer := (others => 0);
|
||||
begin
|
||||
ui.draw_tiny_menu (move_x, move_y, width, height, true);
|
||||
ui.draw_tiny_menu (move_x, move_y, width, height);
|
||||
ui.draw_title_bar (move_x, move_y, width, "Magic Abilities");
|
||||
--
|
||||
for index in enumeration loop
|
||||
|
@ -149,8 +149,8 @@ begin
|
||||
--
|
||||
world.draw;
|
||||
--
|
||||
ui.draw_menu (0, 0, preview_width, preview_height, false);
|
||||
ui.draw_tiny_menu (preview_width, 0, side_panel, preview_height, true);
|
||||
ui.draw_menu (0, 0, preview_width, preview_height);
|
||||
ui.draw_tiny_menu (preview_width, 0, side_panel, preview_height);
|
||||
--
|
||||
ui.draw_state_box (preview_width + 32, 32);
|
||||
--
|
||||
@ -159,6 +159,9 @@ begin
|
||||
--~magic.menu (0, 0, true);
|
||||
--~might.menu (0, 0, true);
|
||||
--
|
||||
ui.draw_menu (60, 60, 243, 243);
|
||||
ui.draw_tiny_menu (360, 60, 243, 243);
|
||||
--
|
||||
menu_render;
|
||||
--
|
||||
ui.draw_text_box (0, core.window_height - text_box_height, core.window_width, text_box_height);
|
||||
|
@ -34,8 +34,7 @@ package body might is
|
||||
|
||||
procedure icon (index : in enumeration; x, y : in integer) is
|
||||
begin
|
||||
core.draw (icon_sprite (index), x + 2, y + 2);
|
||||
ui.draw_overicon (trait (index).text, x, y);
|
||||
ui.draw_overicon (icon_sprite (index), trait (index).text, x, y);
|
||||
end icon;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
@ -58,7 +57,7 @@ package body might is
|
||||
--
|
||||
next : array (0 .. 7) of integer := (others => 0);
|
||||
begin
|
||||
ui.draw_tiny_menu (move_x, move_y, width, height, true);
|
||||
ui.draw_tiny_menu (move_x, move_y, width, height);
|
||||
ui.draw_title_bar (move_x, move_y, width, "Might Abilities");
|
||||
--
|
||||
for index in enumeration loop
|
||||
|
@ -30,7 +30,7 @@ package body resource is
|
||||
move_x : constant integer := (if center then (core.window_width - width) / 2 else x);
|
||||
move_y : constant integer := (if center then (core.window_height - height) / 2 else y);
|
||||
begin
|
||||
ui.draw_tiny_menu (move_x, move_y, width, height, true);
|
||||
ui.draw_tiny_menu (move_x, move_y, width, height);
|
||||
ui.draw_title_bar (move_x, move_y, width, "Resources");
|
||||
--
|
||||
for index in enumeration loop
|
||||
|
@ -31,7 +31,7 @@ package body skill is
|
||||
move_x : constant integer := (if center then (core.window_width - width) / 2 else x);
|
||||
move_y : constant integer := (if center then (core.window_height - height) / 2 else y);
|
||||
begin
|
||||
ui.draw_tiny_menu (move_x, move_y, width, height, true);
|
||||
ui.draw_tiny_menu (move_x, move_y, width, height);
|
||||
ui.draw_title_bar (move_x, move_y, width, "Skills");
|
||||
--
|
||||
for index in enumeration loop
|
||||
|
@ -8,8 +8,32 @@ package body ui is
|
||||
|
||||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
sprite : array (style, enumeration) of core.sprite;
|
||||
glyphs : array (style) of core.font;
|
||||
type element is (
|
||||
none,
|
||||
main_background,
|
||||
corner_upper_left, corner_upper_right, corner_lower_left, corner_lower_right,
|
||||
tiny_corner_upper_left, tiny_corner_upper_right, tiny_corner_lower_left, tiny_corner_lower_right,
|
||||
border_upper, border_lower, border_left, border_right,
|
||||
tiny_border_upper, tiny_border_lower, tiny_border_left, tiny_border_right,
|
||||
frame_upper_left, frame_upper, frame_upper_right,
|
||||
frame_left, frame_middle, frame_right,
|
||||
frame_lower_left, frame_lower, frame_lower_right,
|
||||
cursor, icon, overicon,
|
||||
icon_upper_left, icon_upper, icon_upper_right,
|
||||
icon_left, icon_right,
|
||||
icon_lower_left, icon_lower, icon_lower_right,
|
||||
text_upper_left, text_upper, text_upper_right,
|
||||
text_left, text_middle, text_right,
|
||||
text_lower_left, text_lower, text_lower_right,
|
||||
fill_bar_left, fill_bar_horizontal, fill_bar_right, fill_horizontal,
|
||||
scroll_bar_lower, scroll_bar_middle, scroll_bar_upper,
|
||||
title_bar_left, title_bar_middle, title_bar_right
|
||||
);
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
sprite : array (style, element) of core.sprite;
|
||||
glyphs : array (style) of core.font;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
@ -23,49 +47,49 @@ package body ui is
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
procedure draw (index : in enumeration; x, y : in integer) is
|
||||
procedure draw (index : in element; x, y : in integer) is
|
||||
begin
|
||||
core.zoom := 1;
|
||||
core.draw (sprite (active, index), x, y);
|
||||
core.draw (sprite (active, index), x, y, 0, 0, sprite (active, index).width, sprite (active, index).height);
|
||||
core.zoom := 2;
|
||||
end draw;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
procedure crop (index : in enumeration; x, y, u, v, width, height : in integer) is
|
||||
procedure crop (index : in element; x, y, width, height : in integer) is
|
||||
begin
|
||||
core.zoom := 1;
|
||||
core.draw (sprite (active, index), x, y, u, v, width, height);
|
||||
core.draw (sprite (active, index), x, y, 0, 0, width, height);
|
||||
core.zoom := 2;
|
||||
end crop;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
procedure draw_horizontally (index : in enumeration; x, y, width : in integer) is
|
||||
base : constant integer := sprite (active, index).width;
|
||||
procedure draw_horizontally (index : in element; x, y, width : in integer) is
|
||||
step : constant integer := sprite (active, index).width;
|
||||
begin
|
||||
for move in 0 .. width / base - 1 loop
|
||||
draw (index, x + move * base, y);
|
||||
for move in 0 .. width / step - 1 loop
|
||||
draw (index, x + move * step, y);
|
||||
end loop;
|
||||
--
|
||||
crop (index, x + (width / base) * base, y, 0, 0, width mod base, sprite (active, index).height);
|
||||
crop (index, x + (width / step) * step, y, width mod step, sprite (active, index).height);
|
||||
end draw_horizontally;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
procedure draw_vertically (index : in enumeration; x, y, height : in integer) is
|
||||
base : constant integer := sprite (active, index).height;
|
||||
procedure draw_vertically (index : in element; x, y, height : in integer) is
|
||||
step : constant integer := sprite (active, index).height;
|
||||
begin
|
||||
for move in 0 .. height / base - 1 loop
|
||||
draw (index, x, y + move * base);
|
||||
for move in 0 .. height / step - 1 loop
|
||||
draw (index, x, y + move * step);
|
||||
end loop;
|
||||
--
|
||||
crop (index, x, y + (height / base) * base, 0, 0, sprite (active, index).width, height mod base);
|
||||
crop (index, x, y + (height / step) * step, sprite (active, index).width, height mod step);
|
||||
end draw_vertically;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
procedure draw_background (index : in enumeration; x, y, width, height : in integer) is
|
||||
procedure draw_background (index : in element; x, y, width, height : in integer) is
|
||||
base_width : integer := sprite (active, index).width;
|
||||
base_height : integer := sprite (active, index).height;
|
||||
crop_width : integer := width mod base_width;
|
||||
@ -76,14 +100,14 @@ package body ui is
|
||||
draw (index, x + move_x * base_width, y + move_y * base_height);
|
||||
end loop;
|
||||
--
|
||||
crop (index, x + width - crop_width, y + move_y * base_height, 0, 0, crop_width, base_height);
|
||||
crop (index, x + width - crop_width, y + move_y * base_height, crop_width, base_height);
|
||||
end loop;
|
||||
--
|
||||
for move_x in 0 .. width / base_width - 1 loop
|
||||
crop (index, x + move_x * base_width, y + height - crop_height, 0, 0, base_width, crop_height);
|
||||
crop (index, x + move_x * base_width, y + height - crop_height, base_width, crop_height);
|
||||
end loop;
|
||||
--
|
||||
crop (index, x + width - crop_width, y + height - crop_height, 0, 0, crop_width, crop_height);
|
||||
crop (index, x + width - crop_width, y + height - crop_height, crop_width, crop_height);
|
||||
end draw_background;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
@ -91,10 +115,10 @@ package body ui is
|
||||
procedure configure is
|
||||
procedure load_ui (index : in style; folder_path : in string) is
|
||||
begin
|
||||
glyphs (index) := core.import_font ("./sprite/ui/" & folder_path & "/font.png", (if index = default then 16 else 24), 0);
|
||||
glyphs (index) := core.import_font ("./sprite/ui/" & folder_path & "/font.png", 16, 0);
|
||||
--
|
||||
for this in enumeration loop
|
||||
sprite (index, this) := core.import_sprite ("./sprite/ui/" & folder_path & core.lowercase (enumeration'image (this)) & ".png", 1, 1);
|
||||
for this in element loop
|
||||
sprite (index, this) := core.import_sprite ("./sprite/ui/" & folder_path & core.lowercase (element'image (this)) & ".png", 1, 1);
|
||||
end loop;
|
||||
end load_ui;
|
||||
begin
|
||||
@ -108,9 +132,10 @@ package body ui is
|
||||
|
||||
procedure draw_icon (data : in core.sprite; description : in string; x, y : in integer) is
|
||||
begin
|
||||
draw (icon, x, y);
|
||||
select_text_box (description, x, y, core.icon, core.icon);
|
||||
--
|
||||
draw (icon, x, y);
|
||||
--
|
||||
core.zoom := 1;
|
||||
core.draw (data, x, y);
|
||||
core.zoom := 2;
|
||||
@ -118,10 +143,15 @@ package body ui is
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
procedure draw_overicon (description : in string; x, y : in integer) is
|
||||
procedure draw_overicon (data : in core.sprite; description : in string; x, y : in integer) is
|
||||
begin
|
||||
draw (overicon, x, y);
|
||||
select_text_box (description, x, y, core.icon, core.icon);
|
||||
--
|
||||
core.zoom := 1;
|
||||
core.draw (data, x, y);
|
||||
core.zoom := 2;
|
||||
--
|
||||
draw (overicon, x, y);
|
||||
end draw_overicon;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
@ -183,7 +213,7 @@ package body ui is
|
||||
--
|
||||
core.write (title, x + sprite (active, title_bar_left).width / 2, y - sprite (active, title_bar_middle).height / 2 - 4, glyphs (active));
|
||||
--
|
||||
select_text_box ("", x, y - sprite (active, title_bar_middle).height, width, sprite (active, title_bar_middle).height);
|
||||
select_text_box (title, x, y - sprite (active, title_bar_middle).height, width, sprite (active, title_bar_middle).height);
|
||||
end draw_title_bar;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
@ -199,7 +229,7 @@ package body ui is
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
procedure draw_menu (x, y, width, height : in integer; background : in boolean) is
|
||||
procedure draw_menu (x, y, width, height : in integer) is
|
||||
offset : constant integer := sprite (active, none).width;
|
||||
begin
|
||||
if width < sprite (active, corner_upper_left).width + sprite (active, corner_upper_right).width
|
||||
@ -209,10 +239,6 @@ package body ui is
|
||||
then return;
|
||||
end if;
|
||||
--
|
||||
if background then
|
||||
draw_background (main_background, x + offset, y + offset, width - 2 * offset, height - 2 * offset);
|
||||
end if;
|
||||
--
|
||||
declare upper : constant integer := width - sprite (active, corner_upper_left).width - sprite (active, corner_upper_right).width;
|
||||
lower : constant integer := width - sprite (active, corner_lower_left).width - sprite (active, corner_lower_right).width;
|
||||
left : constant integer := height - sprite (active, corner_upper_left).height - sprite (active, corner_lower_left).height;
|
||||
@ -234,7 +260,7 @@ package body ui is
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
procedure draw_tiny_menu (x, y, width, height : in integer; background : in boolean) is
|
||||
procedure draw_tiny_menu (x, y, width, height : in integer) is
|
||||
offset : constant integer := sprite (active, none).width;
|
||||
begin
|
||||
if width < sprite (active, tiny_corner_upper_left).width + sprite (active, tiny_corner_upper_right).width
|
||||
@ -244,9 +270,7 @@ package body ui is
|
||||
then return;
|
||||
end if;
|
||||
--
|
||||
if background then
|
||||
draw_background (main_background, x + offset, y + offset, width - 2 * offset, height - 2 * offset);
|
||||
end if;
|
||||
draw_background (main_background, x + offset, y + offset, width - 2 * offset, height - 2 * offset);
|
||||
--
|
||||
declare upper : constant integer := width - sprite (active, tiny_corner_upper_left).width - sprite (active, tiny_corner_upper_right).width;
|
||||
lower : constant integer := width - sprite (active, tiny_corner_lower_left).width - sprite (active, tiny_corner_lower_right).width;
|
||||
|
@ -12,28 +12,6 @@ package ui is
|
||||
default, steam
|
||||
);
|
||||
|
||||
type enumeration is (
|
||||
none,
|
||||
main_background,
|
||||
corner_upper_left, corner_upper_right, corner_lower_left, corner_lower_right,
|
||||
tiny_corner_upper_left, tiny_corner_upper_right, tiny_corner_lower_left, tiny_corner_lower_right,
|
||||
border_upper, border_lower, border_left, border_right,
|
||||
tiny_border_upper, tiny_border_lower, tiny_border_left, tiny_border_right,
|
||||
frame_upper_left, frame_upper, frame_upper_right,
|
||||
frame_left, frame_middle, frame_right,
|
||||
frame_lower_left, frame_lower, frame_lower_right,
|
||||
cursor, icon, overicon,
|
||||
icon_upper_left, icon_upper, icon_upper_right,
|
||||
icon_left, icon_right,
|
||||
icon_lower_left, icon_lower, icon_lower_right,
|
||||
text_upper_left, text_upper, text_upper_right,
|
||||
text_left, text_middle, text_right,
|
||||
text_lower_left, text_lower, text_lower_right,
|
||||
fill_bar_left, fill_bar_horizontal, fill_bar_right, fill_horizontal,
|
||||
scroll_bar_lower, scroll_bar_middle, scroll_bar_upper,
|
||||
title_bar_left, title_bar_middle, title_bar_right
|
||||
);
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
active : style;
|
||||
@ -43,7 +21,7 @@ package ui is
|
||||
procedure configure;
|
||||
|
||||
procedure draw_icon (data : in core.sprite; description : in string; x, y : in integer);
|
||||
procedure draw_overicon (description : in string; x, y : in integer);
|
||||
procedure draw_overicon (data : in core.sprite; description : in string; x, y : in integer);
|
||||
|
||||
procedure draw_text_box (x, y, width, height : in integer);
|
||||
|
||||
@ -52,8 +30,8 @@ package ui is
|
||||
procedure draw_title_bar (x, y, width : in integer; title : in string);
|
||||
procedure draw_scroll_bar (x, y, height : in integer; offset : in integer);
|
||||
|
||||
procedure draw_menu (x, y, width, height : in integer; background : in boolean);
|
||||
procedure draw_tiny_menu (x, y, width, height : in integer; background : in boolean);
|
||||
procedure draw_menu (x, y, width, height : in integer);
|
||||
procedure draw_tiny_menu (x, y, width, height : in integer);
|
||||
|
||||
procedure draw_icon_menu (description : in string; x, y, width, height : in integer);
|
||||
|
||||
|
@ -43,8 +43,7 @@ package body unit is
|
||||
|
||||
procedure icon (index : in enumeration; x, y : in integer) is
|
||||
begin
|
||||
core.draw (icon_sprite (index), x + 2, y + 2);
|
||||
ui.draw_overicon (trait (index).text, x, y);
|
||||
ui.draw_overicon (icon_sprite (index), trait (index).text, x, y);
|
||||
end icon;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
@ -66,7 +65,7 @@ package body unit is
|
||||
move_y : constant integer := (if center then (core.window_height - height) / 2 else y);
|
||||
move : integer := 0;
|
||||
begin
|
||||
ui.draw_tiny_menu (move_x, move_y, width, height, true);
|
||||
ui.draw_tiny_menu (move_x, move_y, width, height);
|
||||
ui.draw_title_bar (move_x, move_y, width, "Units");
|
||||
--
|
||||
for index in enumeration loop
|
||||
@ -87,7 +86,7 @@ package body unit is
|
||||
move_y : constant integer := (if center then (core.window_height - height) / 2 else y);
|
||||
move : integer := 0;
|
||||
begin
|
||||
ui.draw_tiny_menu (move_x, move_y, width, height, true);
|
||||
ui.draw_tiny_menu (move_x, move_y, width, height);
|
||||
ui.draw_title_bar (move_x, move_y, width, trait (index).name);
|
||||
--
|
||||
view (index, move_x + offset, move_y + offset);
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.2 KiB |
Loading…
Reference in New Issue
Block a user