Gameplay UI toggle icons...

This commit is contained in:
Ognjen Milan Robovic 2024-05-03 06:10:13 -04:00
parent cc7c27833d
commit 0ae392dbd3
5 changed files with 49 additions and 15 deletions

View File

@ -19,6 +19,32 @@ procedure main is
------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------
type screen_view is (
map_preview_panel, status_preview_panel, text_box_panel
);
screen_view_icon : array (screen_view) of core.sprite;
screen_view_list : array (screen_view) of boolean := (others => true);
screen_view_text : array (screen_view) of core.long_string := (
"Toggle map preview panel. ",
"Toggle status preview panel. ",
"Toggle text box panel. "
);
procedure toggle_map_preview_panel is begin screen_view_list (map_preview_panel) := (if screen_view_list (map_preview_panel) then false else true); end toggle_map_preview_panel;
procedure toggle_status_preview_panel is begin screen_view_list (status_preview_panel) := (if screen_view_list (status_preview_panel) then false else true); end toggle_status_preview_panel;
procedure toggle_text_box_panel is begin screen_view_list (text_box_panel) := (if screen_view_list (text_box_panel) then false else true); end toggle_text_box_panel;
screen_view_show : array (screen_view) of access procedure := (
toggle_map_preview_panel'access,
toggle_status_preview_panel'access,
toggle_text_box_panel'access
);
------------------------------------------------------------------------------------------
-- TODO: This menu code is now useless due to new UI code. -- TODO: This menu code is now useless due to new UI code.
type menu_index is ( type menu_index is (
@ -137,6 +163,10 @@ begin
core.echo (core.success, "Successfully initialized game data, entering main gameplay loop."); core.echo (core.success, "Successfully initialized game data, entering main gameplay loop.");
core.dash; core.dash;
for index in screen_view loop
screen_view_icon (index) := core.import_sprite ("./sprite/ui/icon/" & core.lowercase (screen_view'image (index)) & ".png", 1, 1);
end loop;
------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------
gameplay: loop gameplay: loop
@ -154,10 +184,16 @@ begin
-- --
world.draw; world.draw;
-- --
ui.draw_menu (0, 0, preview_width, preview_height); if screen_view_list (map_preview_panel) then ui.draw_menu (0, 0, preview_width, preview_height); end if;
ui.draw_tiny_menu (preview_width, 0, side_panel, preview_height); if screen_view_list (status_preview_panel) then ui.draw_tiny_menu (preview_width, 0, side_panel, preview_height); end if;
-- if screen_view_list (status_preview_panel) then ui.draw_state_box (preview_width + 32, 32); end if;
ui.draw_state_box (preview_width + 32, 32); if screen_view_list (text_box_panel) then ui.draw_help_box (0, core.window_height - text_box_height, core.window_width - core.icon * (screen_view'pos (screen_view'last) + 1), text_box_height); end if;
for index in screen_view loop
ui.draw_icon (screen_view_icon (index), screen_view_text (index),
core.window_width - core.icon * (screen_view'pos (screen_view'last) + 1) + core.icon * screen_view'pos (index),
core.window_height - text_box_height,
screen_view_show (index));
end loop;
-- --
signal_list (core.signal_code'val (core.signal_mode)).all; signal_list (core.signal_code'val (core.signal_mode)).all;
-- --
@ -174,8 +210,6 @@ begin
chad.draw_alice; chad.draw_alice;
-- --
ui.synchronize; ui.synchronize;
--
ui.draw_help_box (0, core.window_height - text_box_height, core.window_width, text_box_height);
end loop gameplay; end loop gameplay;
------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------

View File

@ -82,15 +82,15 @@ package body world is
width => core.base, width => core.base,
height => core.base); height => core.base);
-- --
if core.cursor.x > offset.x + (horizontal - core.camera.x ) * core.base * core.zoom --~if core.cursor.x > offset.x + (horizontal - core.camera.x ) * core.base * core.zoom
and core.cursor.x < offset.x + (horizontal - core.camera.x + 1) * core.base * core.zoom --~and core.cursor.x < offset.x + (horizontal - core.camera.x + 1) * core.base * core.zoom
and core.cursor.y > offset.y + (vertical - core.camera.y ) * core.base * core.zoom --~and core.cursor.y > offset.y + (vertical - core.camera.y ) * core.base * core.zoom
and core.cursor.y < offset.y + (vertical - core.camera.y + 1) * core.base * core.zoom --~and core.cursor.y < offset.y + (vertical - core.camera.y + 1) * core.base * core.zoom
and core.cursor_mode = 1 and not ui.prioritize then --~and core.cursor_mode = 1 and not ui.prioritize then
core.camera.x := horizontal; --~core.camera.x := horizontal;
core.camera.y := vertical; --~core.camera.y := vertical;
core.cursor_mode := 0; --~core.cursor_mode := 0;
end if; --~end if;
end loop; end loop;
end loop; end loop;
-- --

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 B