Insane bit hackery...

This commit is contained in:
Ognjen Milan Robovic 2024-03-22 14:38:17 -04:00
parent 9960dca477
commit 4dfb96e3ad

View File

@ -10,12 +10,16 @@ package ai is
subtype string_16 is string (1 .. 16); subtype string_16 is string (1 .. 16);
agent_digit : constant natural := 4;
agent_state : constant natural := 8;
type name_limit is mod 400; type name_limit is mod 400;
type clan_limit is mod 120; type clan_limit is mod 120;
type data_limit is mod agent_state ** agent_digit - 1;
type action_data is type action_data is
record record
base : natural; base : data_limit;
data : core.procedure_pointer; data : core.procedure_pointer;
name : core.short_string; name : core.short_string;
end record; end record;
@ -24,6 +28,7 @@ package ai is
record record
name : name_limit; name : name_limit;
clan : clan_limit; clan : clan_limit;
data : data_limit;
end record; end record;
------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------
@ -34,10 +39,10 @@ package ai is
procedure action_find; procedure action_find;
action_array : constant array (action) of action_data := ( action_array : constant array (action) of action_data := (
(000000, action_none'access, "idle "), (4#00000000#, action_none'access, "standing "),
(000001, action_walk'access, "walking "), (4#00000000#, action_walk'access, "walking "),
(000300, action_talk'access, "talking "), (4#00000000#, action_talk'access, "talking "),
(050060, action_find'access, "finding ") (4#00000000#, action_find'access, "finding ")
); );
male_name_array : constant array (name_limit) of string_16 := ( male_name_array : constant array (name_limit) of string_16 := (