Refactored view icons...

This commit is contained in:
Ognjen Milan Robovic 2024-06-01 18:59:37 -04:00
parent 35a568f6ab
commit 6bfc1b9372
9 changed files with 88 additions and 57 deletions

View File

@ -3,7 +3,7 @@
set -xe
cd source
gnatmake -g -O3 -fstack-check -c main.adb
gnatmake -O3 -fstack-check -c main.adb
gnatbind main.ali
gnatlink -o xhads main.ali -lraylib
mv xhads ../xhads

BIN
icon/engine/fullscreen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 B

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 B

After

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 B

After

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 B

View File

@ -18,7 +18,10 @@ procedure main is
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
type view is (
map_preview_panel, status_preview_panel, text_box_panel
map_preview_panel,
status_preview_panel,
text_box_panel,
fullscreen
);
------------------------------------------------------------------------------------------
@ -26,6 +29,7 @@ procedure main is
procedure swap_map_preview_panel;
procedure swap_status_preview_panel;
procedure swap_text_box_panel;
procedure swap_fullscreen;
procedure ui_main_style;
procedure zoom_in;
procedure zoom_out;
@ -48,23 +52,24 @@ procedure main is
core.signal_f6 => world.resource_cheat_6'access,
core.signal_f7 => world.reveal_map'access,
core.signal_f8 => world.restore_points'access,
core.signal_f => core.toggle_fullscreen'access,
others => core.idle_skip'access
);
view_show : array (view) of access procedure := (
swap_map_preview_panel'access,
swap_status_preview_panel'access,
swap_text_box_panel'access
swap_text_box_panel'access,
swap_fullscreen'access
);
view_icon : array (view) of core.sprite := (others => (others => 0));
view_list : array (view) of boolean := (others => true);
view_list : array (view) of boolean := (fullscreen => false, others => true);
view_text : array (view) of core.long_string := (
"Toggle map preview panel. ",
"Toggle status preview panel. ",
"Toggle text box panel. "
"Toggle text box panel. ",
"Toggle fullscreen or windowed mode. "
);
game_title : core.sprite;
@ -146,6 +151,7 @@ procedure main is
procedure swap_map_preview_panel is begin view_list (map_preview_panel) := not view_list (map_preview_panel); end swap_map_preview_panel;
procedure swap_status_preview_panel is begin view_list (status_preview_panel) := not view_list (status_preview_panel); end swap_status_preview_panel;
procedure swap_text_box_panel is begin view_list (text_box_panel) := not view_list (text_box_panel); end swap_text_box_panel;
procedure swap_fullscreen is begin view_list (fullscreen) := not view_list (fullscreen); end swap_fullscreen;
------------------------------------------------------------------------------------------
@ -161,17 +167,17 @@ procedure main is
------------------------------------------------------------------------------------------
procedure main_menu is
begin
core.draw (game_preview (world.ash), core.center_x (game_preview (world.ash).width * 2), core.center_y (game_preview (world.ash).height * 2), factor => 2);
core.draw (game_title, core.center_x (game_title.width * 2), core.center_y (game_title.height * 2), factor => 2);
--
ui.write ("Main Menu", 0, 0);
--
ui.draw_check_box (0, 32, view_list (map_preview_panel), "map_preview_panel");
ui.draw_check_box (0, 64, view_list (status_preview_panel), "status_preview_panel");
ui.draw_check_box (0, 96, view_list (text_box_panel), "text_box_panel");
end main_menu;
--~procedure main_menu is
--~begin
--~core.draw (game_preview (world.ash), core.center_x (game_preview (world.ash).width * 2), core.center_y (game_preview (world.ash).height * 2), factor => 2);
--~core.draw (game_title, core.center_x (game_title.width * 2), core.center_y (game_title.height * 2), factor => 2);
--~--
--~ui.write ("Main Menu", 0, 0);
--~--
--~ui.draw_check_box (0, 32, view_list (map_preview_panel), "map_preview_panel");
--~ui.draw_check_box (0, 64, view_list (status_preview_panel), "status_preview_panel");
--~ui.draw_check_box (0, 96, view_list (text_box_panel), "text_box_panel");
--~end main_menu;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@ -214,7 +220,7 @@ begin
core.dash;
for index in view loop
view_icon (index) := core.import_sprite (core.folder & "/icon/engine/" & core.lowercase (view'image (index)) & ".png", 1, 1);
view_icon (index) := core.import_sprite (core.folder & "/icon/engine/" & core.lowercase (view'image (index)) & ".png", 1, 2);
end loop;
game_title := core.import_sprite (core.folder & "/ui/game_title.png", 1, 1);
@ -308,14 +314,23 @@ begin
if view_list (text_box_panel) then
ui.draw_help_box (0, core.window_height - text_box_height, core.window_width - core.icon * (view'pos (view'last) + 1), text_box_height);
--
ui.write (core.framerate'image, core.window_width - 5 * core.icon + 3, core.window_height - 27);
ui.write (core.framerate'image, core.window_width - core.icon * (view'pos (view'last) + 1) - 64, core.window_height - 27);
end if;
--
for index in view loop
ui.draw_icon (view_icon (index), view_text (index),
core.window_width - core.icon * (view'pos (view'last) + 1) + core.icon * view'pos (index),
core.window_height - text_box_height,
view_show (index));
--~ui.draw_icon (view_icon (index), view_text (index),
--~core.window_width - core.icon * (view'pos (view'last) + 1) + core.icon * view'pos (index),
--~core.window_height - text_box_height,
--~view_show (index));
ui.draw_frame (description => view_text (index),
x => core.window_width - core.icon * (view'pos (view'last) + 1) + core.icon * view'pos (index),
y => core.window_height - core.icon,
width => core.icon,
height => core.icon,
action => view_show (index));
--
core.draw (view_icon (index), core.window_width - core.icon * (view'pos (view'last) + 1) + core.icon * view'pos (index), core.window_height - core.icon,
boolean'pos (view_list (index)) * core.icon);
end loop;
--
resource.draw_points (world.map.chads (1).resources, (preview_width - 5 * core.icon * resource.count) / 2, core.base);

View File

@ -9,12 +9,55 @@ package body material is
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
procedure configure is
procedure define (index : in enumeration; name : in string; cost : in natural) is
begin
description (index).name := core.unbound (name);
description (index).cost := cost;
end define;
--
time : float := 0.0;
begin
core.echo (core.comment, "Configuring material components...");
time := core.time;
--
core.echo (core.comment, "Configuring" & count'image & " material components...");
--
description := new description_array (enumeration'range);
icon := new icon_array (enumeration'range);
--
define (sulphur, "Sulphur", 11);
define (mercury, "Mercury", 13);
define (mint, "Mint", 3);
define (cinnamon, "Cinnamon", 5);
define (apple, "Apple", 2);
define (peach, "Peach", 2);
define (pear, "Pear", 2);
define (banana, "Banana", 3);
define (orange, "Orange", 3);
define (plum, "Plum", 3);
define (cherry, "Cherry", 3);
define (lemon, "Lemon", 2);
define (potato, "Potato", 1);
define (wheat, "Wheat", 1);
define (carrot, "Carrot", 2);
define (cucumber, "Cucumber", 3);
define (onion, "Onion", 2);
define (garlic, "Garlic", 2);
define (eggplant, "Eggplant", 3);
define (tomato, "Tomato", 2);
define (meat, "Meat", 3);
define (fish_meat, "Fish Meat", 2);
define (skull, "Skull", 1);
define (animal_skull, "Animal Skull", 1);
define (bone, "Bone", 1);
define (rib_cage, "Rib Cage", 1);
define (animal_skin, "Animal Skin", 5);
define (animal_fur, "Animal Fur", 7);
--
for index in enumeration loop
icon (index) := core.import_sprite (core.folder & "/icon/material/" & core.lowercase (enumeration'image (index)) & ".png", 1, 1);
end loop;
--
core.echo (core.success, "Successfully configured resource information in" & natural'image (natural (1_000_000.0 * (core.time - time))) & " microseconds.");
end configure;
------------------------------------------------------------------------------------------

View File

@ -25,44 +25,17 @@ package material is
type points is array (enumeration) of core.point;
type description_array is array (enumeration range <>) of definition;
type icon_array is array (enumeration range <>) of core.sprite;
------------------------------------------------------------------------------------------
count : constant natural := enumeration'pos (enumeration'last) + 1;
description : constant array (enumeration) of definition := (
sulphur => (core.unbound ("Sulphur"), 7),
mercury => (core.unbound ("Mercury"), 13),
mint => (core.unbound ("Mint"), 3),
cinnamon => (core.unbound ("Cinnamon"), 5),
apple => (core.unbound ("Apple"), 2),
peach => (core.unbound ("Peach"), 2),
pear => (core.unbound ("Pear"), 2),
banana => (core.unbound ("Banana"), 3),
orange => (core.unbound ("Orange"), 3),
plum => (core.unbound ("Plum"), 3),
cherry => (core.unbound ("Cherry"), 3),
lemon => (core.unbound ("Lemon"), 2),
potato => (core.unbound ("Potato"), 1),
wheat => (core.unbound ("Wheat"), 1),
carrot => (core.unbound ("Carrot"), 2),
cucumber => (core.unbound ("Cucumber"), 3),
onion => (core.unbound ("Onion"), 2),
garlic => (core.unbound ("Garlic"), 2),
eggplant => (core.unbound ("Eggplant"), 3),
tomato => (core.unbound ("Tomato"), 2),
meat => (core.unbound ("Meat"), 3),
fish_meat => (core.unbound ("Fish Meat"), 2),
skull => (core.unbound ("Skull"), 1),
animal_skull => (core.unbound ("Animal Skull"), 1),
bone => (core.unbound ("Bone"), 1),
rib_cage => (core.unbound ("Rib Cage"), 1),
animal_skin => (core.unbound ("Animal Skin"), 5),
animal_fur => (core.unbound ("Animal Fur"), 7)
);
default : constant points := (others => (1, 12));
default : points := (others => (1, 12));
icon : array (enumeration) of core.sprite;
description : access description_array;
icon : access icon_array;
------------------------------------------------------------------------------------------