Refactored a lot of code again...

This commit is contained in:
Ognjen Milan Robovic 2024-02-19 21:29:11 -05:00
parent 4dc8fb61ad
commit 646ab4872e
6 changed files with 52 additions and 21 deletions

View File

@ -117,7 +117,11 @@ begin
menu.draw (menu.resource_information, 400, 100, false);
--
core.write ("Menu :" & menu.trait (menu.mouse_over_menu).title, preview_width + 32, 32 + 320, 16#CCCCCC#);
if menu.mouse_over_menu_element = -1 then
core.write ("Menu Element :" & "-- ", preview_width + 32, 32 + 352, 16#CCCCCC#);
else
core.write ("Menu Element :" & menu.trait (menu.mouse_over_menu).elements (menu.mouse_over_menu_element).text, preview_width + 32, 32 + 352, 16#CCCCCC#);
end if;
end loop gameplay;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

View File

@ -11,7 +11,7 @@ package body menu is
icon_size : constant integer := 32;
offset : constant integer := icon_size + 2 * icon_offset;
button_width : constant integer := 2 * draw_offset + offset + 24 * 8 - 2 * draw_offset;
button_width : constant integer := offset + 24 * 8;
button_height : constant integer := offset;
------------------------------------------------------------------------------------------
@ -35,24 +35,19 @@ package body menu is
trait (attribute_information).elements (index) := make_button (index, attribute.name (index), attribute.icon (index));
end loop;
--
--~for index in attribute.codex
--~loop
--~trait (attribute_information).elements (attribute.codex'pos (index)) := make_button (attribute.codex'pos (index), attribute.trait (index).name, attribute.icon (index));
--~end loop;
--
for index in skill.codex
for index in 0 .. skill.count - 1
loop
trait (skill_information).elements (skill.codex'pos (index)) := make_button (skill.codex'pos (index), skill.trait (index).name, skill.icon (index));
trait (skill_information).elements (index) := make_button (index, skill.name (index), skill.icon (index));
end loop;
--
for index in resource.codex
for index in 0 .. resource.count - 1
loop
trait (resource_information).elements (resource.codex'pos (index)) := make_button (resource.codex'pos (index), resource.trait (index).name, resource.icon (index));
trait (resource_information).elements (index) := make_button (index, resource.name (index), resource.icon (index));
end loop;
--
for index in 0 .. 1
loop
trait (none).elements (index) := make_button (index, "-- ", resource.icon (resource.gold));
trait (none).elements (index) := make_button (index, "-- ", resource.icon (0));
end loop;
end configure;
@ -62,7 +57,7 @@ package body menu is
limitation : integer;
begin
mouse_over_menu := none;
mouse_over_menu_element := 0;
mouse_over_menu_element := -1;
--
for index in codex
loop
@ -76,10 +71,20 @@ package body menu is
end if;
--
if mouse_over_menu /= none then
--~for element_index in 0 .. limitation - 1
--~loop
--~if core.cursor_y > trait (index).y + draw_offset + element_index * offset
--~and core.cursor_y < trait (index).y + draw_offset + element_index * offset + offset then
--~mouse_over_menu_element := element_index;
--~end if;
--~end loop;
--~return;
for element_index in 0 .. limitation - 1
loop
if core.cursor_y > trait (index).y + draw_offset + element_index * offset
and core.cursor_y < trait (index).y + draw_offset + element_index * offset + offset then
if core.cursor_x > trait (index).x + trait (index).elements (element_index).x
and core.cursor_x < trait (index).x + trait (index).elements (element_index).x + trait (index).elements (element_index).width
and core.cursor_y > trait (index).y + trait (index).elements (element_index).y
and core.cursor_y < trait (index).y + trait (index).elements (element_index).y + trait (index).elements (element_index).height then
mouse_over_menu_element := element_index;
end if;
end loop;

View File

@ -10,7 +10,7 @@ package body resource is
begin
for index in codex
loop
icon (index) := core.load_sprite ("./sprite/resource/" & core.lowercase (codex'image (index)) & ".png", 1, 1);
sprite (index) := core.load_sprite ("./sprite/resource/" & core.lowercase (codex'image (index)) & ".png", 1, 1);
end loop;
end configure;
@ -18,9 +18,15 @@ package body resource is
procedure draw (index : in codex; x, y : in integer) is
begin
core.draw (icon (index), x, y);
core.draw (sprite (index), x, y);
end draw;
------------------------------------------------------------------------------------------
function name (index : in integer) return core.short_string is begin return trait (codex'val (index)).name; end name;
function base (index : in integer) return base_limit is begin return trait (codex'val (index)).base; end base;
function icon (index : in integer) return core.sprite is begin return sprite (codex'val (index)); end icon;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
end resource;

View File

@ -26,7 +26,7 @@ package resource is
------------------------------------------------------------------------------------------
icon : sprite_array;
sprite : sprite_array;
count : constant natural := codex'pos (codex'last) + 1;
@ -46,6 +46,10 @@ package resource is
procedure draw (index : in codex; x, y : in integer);
function name (index : in integer) return core.short_string;
function base (index : in integer) return base_limit;
function icon (index : in integer) return core.sprite;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
end resource;

View File

@ -10,7 +10,7 @@ package body skill is
begin
for index in codex
loop
icon (index) := core.load_sprite ("./sprite/skill/" & core.lowercase (codex'image (index)) & ".png", 1, 1);
sprite (index) := core.load_sprite ("./sprite/skill/" & core.lowercase (codex'image (index)) & ".png", 1, 1);
end loop;
end configure;
@ -18,9 +18,16 @@ package body skill is
procedure draw (index : in codex; x, y : in integer) is
begin
core.draw (icon (index), x, y);
core.draw (sprite (index), x, y);
end draw;
------------------------------------------------------------------------------------------
function name (index : in integer) return core.short_string is begin return trait (codex'val (index)).name; end name;
function base (index : in integer) return base_limit is begin return trait (codex'val (index)).base; end base;
function level (index : in integer) return level_limit is begin return trait (codex'val (index)).level; end level;
function icon (index : in integer) return core.sprite is begin return sprite (codex'val (index)); end icon;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
end skill;

View File

@ -29,7 +29,7 @@ package skill is
------------------------------------------------------------------------------------------
icon : sprite_array;
sprite : sprite_array;
count : constant natural := codex'pos (codex'last) + 1;
@ -66,6 +66,11 @@ package skill is
procedure draw (index : in codex; x, y : in integer);
function name (index : in integer) return core.short_string;
function base (index : in integer) return base_limit;
function level (index : in integer) return level_limit;
function icon (index : in integer) return core.sprite;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
end skill;