Changed signal mode to strict enumeration value, have equality hack...
This commit is contained in:
parent
42806f33c5
commit
a493ea7d61
@ -313,26 +313,26 @@ package body core is
|
||||
if ray.mouse_button_is_released (ray.mouse_button_middle) then cursor_mode := 0; end if;
|
||||
--
|
||||
case signal is
|
||||
when 48 .. 57 => signal_mode := signal - 48 + signal_code'pos (signal_0);
|
||||
when 65 .. 90 => signal_mode := signal - 65 + signal_code'pos (signal_a);
|
||||
when 320 .. 329 => signal_mode := signal - 320 + signal_code'pos (signal_kp_0);
|
||||
when 48 .. 57 => signal_mode := signal_code'val (signal - 48 + signal_code'pos (signal_0));
|
||||
when 65 .. 90 => signal_mode := signal_code'val (signal - 65 + signal_code'pos (signal_a));
|
||||
when 320 .. 329 => signal_mode := signal_code'val (signal - 320 + signal_code'pos (signal_kp_0));
|
||||
--
|
||||
when 0 => signal_mode := signal_code'pos (signal_none);
|
||||
when 32 => signal_mode := signal_code'pos (signal_space);
|
||||
when 96 => signal_mode := signal_code'pos (signal_grave);
|
||||
when 340 => signal_mode := signal_code'pos (signal_left_shift);
|
||||
when 341 => signal_mode := signal_code'pos (signal_left_control);
|
||||
when 333 => signal_mode := signal_code'pos (signal_kp_subtract);
|
||||
when 334 => signal_mode := signal_code'pos (signal_kp_add);
|
||||
when 256 => signal_mode := signal_code'pos (signal_escape);
|
||||
when 257 => signal_mode := signal_code'pos (signal_enter);
|
||||
when 258 => signal_mode := signal_code'pos (signal_tab);
|
||||
when 259 => signal_mode := signal_code'pos (signal_backspace);
|
||||
when 262 => signal_mode := signal_code'pos (signal_right);
|
||||
when 263 => signal_mode := signal_code'pos (signal_left);
|
||||
when 264 => signal_mode := signal_code'pos (signal_down);
|
||||
when 265 => signal_mode := signal_code'pos (signal_up);
|
||||
when others => signal_mode := signal_code'pos (signal_none);
|
||||
when 0 => signal_mode := signal_none;
|
||||
when 32 => signal_mode := signal_space;
|
||||
when 96 => signal_mode := signal_grave;
|
||||
when 340 => signal_mode := signal_left_shift;
|
||||
when 341 => signal_mode := signal_left_control;
|
||||
when 333 => signal_mode := signal_kp_subtract;
|
||||
when 334 => signal_mode := signal_kp_add;
|
||||
when 256 => signal_mode := signal_escape;
|
||||
when 257 => signal_mode := signal_enter;
|
||||
when 258 => signal_mode := signal_tab;
|
||||
when 259 => signal_mode := signal_backspace;
|
||||
when 262 => signal_mode := signal_right;
|
||||
when 263 => signal_mode := signal_left;
|
||||
when 264 => signal_mode := signal_down;
|
||||
when 265 => signal_mode := signal_up;
|
||||
when others => signal_mode := signal_none;
|
||||
end case;
|
||||
--
|
||||
--~for index in reverse 0 .. block_count - 1 loop
|
||||
|
@ -69,15 +69,15 @@ package core is
|
||||
|
||||
engine_active : boolean := false;
|
||||
|
||||
cursor : vector := (0, 0);
|
||||
camera : vector := (0, 0);
|
||||
cursor_mode : integer := 0;
|
||||
signal_mode : integer := 0;
|
||||
framerate : integer := 0;
|
||||
global_time : natural := 0;
|
||||
gameplay_time : natural := 0;
|
||||
animation_time : natural := 0;
|
||||
zoom : natural := 1;
|
||||
cursor : vector := (0, 0);
|
||||
camera : vector := (0, 0);
|
||||
cursor_mode : integer := 0;
|
||||
signal_mode : signal_code := signal_none;
|
||||
framerate : integer := 0;
|
||||
global_time : natural := 0;
|
||||
gameplay_time : natural := 0;
|
||||
animation_time : natural := 0;
|
||||
zoom : natural := 1;
|
||||
|
||||
block_limit : constant natural := 40;
|
||||
block_count : natural := 0;
|
||||
|
106
source/main.adb
106
source/main.adb
@ -99,6 +99,59 @@ procedure main is
|
||||
others => core.idle'access
|
||||
);
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
procedure introduction is
|
||||
begin
|
||||
ui.write ("Heyo world!", 0, 0);
|
||||
end introduction;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
procedure gameplay is
|
||||
begin
|
||||
if not view_list (status_preview_panel) then
|
||||
side_panel := 0;
|
||||
else
|
||||
side_panel := core.window_width / 4;
|
||||
end if;
|
||||
--
|
||||
preview_width := core.window_width - side_panel;
|
||||
preview_height := core.window_height - text_box_height;
|
||||
text_box_height := 32;
|
||||
--
|
||||
world.draw;
|
||||
--
|
||||
if view_list (map_preview_panel) then
|
||||
ui.draw_menu (0, 0, preview_width, preview_height);
|
||||
end if;
|
||||
--
|
||||
if view_list (status_preview_panel) then
|
||||
ui.draw_tiny_menu (preview_width, 0, side_panel, preview_height);
|
||||
ui.draw_state_box (preview_width + 32, 32);
|
||||
end if;
|
||||
--
|
||||
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);
|
||||
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));
|
||||
end loop;
|
||||
--
|
||||
signal_list (core.signal_mode).all;
|
||||
--
|
||||
--~magic.menu (0, 0, true);
|
||||
--~might.menu (0, 0, true);
|
||||
--
|
||||
chad.draw_alice;
|
||||
--
|
||||
ui.synchronize;
|
||||
end gameplay;
|
||||
|
||||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
begin
|
||||
@ -144,52 +197,21 @@ begin
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
gameplay: loop
|
||||
introduction_loop: loop
|
||||
core.synchronize;
|
||||
--
|
||||
exit when core.signal_code'pos (core.signal_mode) = core.signal_code'pos (core.signal_space);
|
||||
--
|
||||
introduction;
|
||||
end loop introduction_loop;
|
||||
|
||||
gameplay_loop: loop
|
||||
core.synchronize;
|
||||
--
|
||||
exit when core.engine_active = false;
|
||||
--
|
||||
if not view_list (status_preview_panel) then
|
||||
side_panel := 0;
|
||||
else
|
||||
side_panel := core.window_width / 4;
|
||||
end if;
|
||||
--
|
||||
preview_width := core.window_width - side_panel;
|
||||
preview_height := core.window_height - text_box_height;
|
||||
text_box_height := 32;
|
||||
--
|
||||
world.draw;
|
||||
--
|
||||
if view_list (map_preview_panel) then
|
||||
ui.draw_menu (0, 0, preview_width, preview_height);
|
||||
end if;
|
||||
--
|
||||
if view_list (status_preview_panel) then
|
||||
ui.draw_tiny_menu (preview_width, 0, side_panel, preview_height);
|
||||
ui.draw_state_box (preview_width + 32, 32);
|
||||
end if;
|
||||
--
|
||||
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);
|
||||
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));
|
||||
end loop;
|
||||
--
|
||||
signal_list (core.signal_code'val (core.signal_mode)).all;
|
||||
--
|
||||
--~magic.menu (0, 0, true);
|
||||
--~might.menu (0, 0, true);
|
||||
--
|
||||
chad.draw_alice;
|
||||
--
|
||||
ui.synchronize;
|
||||
end loop gameplay;
|
||||
gameplay;
|
||||
end loop gameplay_loop;
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
|
@ -229,7 +229,7 @@ package body ui is
|
||||
procedure synchronize is
|
||||
begin
|
||||
for index in 0 .. structure_count - 1 loop
|
||||
if core.signal_mode = core.signal_code'pos (structure_array (index).toggle) then
|
||||
if core.signal_code'pos (core.signal_mode) = core.signal_code'pos (structure_array (index).toggle) then
|
||||
structure_array (index).show := (if structure_array (index).show then false else true);
|
||||
end if;
|
||||
--
|
||||
|
Loading…
Reference in New Issue
Block a user