diff --git a/source/ai.ads b/source/ai.ads index b74bbf9..bac2fd0 100644 --- a/source/ai.ads +++ b/source/ai.ads @@ -8,16 +8,27 @@ package ai is none, walk, talk, find, ); - type codex is natural range 0 .. 10_000_000; - - type state is + type action_data is record - soul : codex; - body : codex; + base : natural; + data : core.procedure_pointer; + name : core.short_string; end record; ------------------------------------------------------------------------------------------ + procedure action_none is begin end action_none; + procedure action_walk is begin end action_walk; + procedure action_talk is begin end action_talk; + procedure action_find is begin end action_find; + + action_list : constant array (action) of action_data := ( + (000000, action_none, "idle "), + (000001, action_walk, "walking "), + (000300, action_talk, "talking "), + (050060, action_find, "finding ") + ); + ------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------ diff --git a/source/core.ads b/source/core.ads index 5f8d770..80b9fee 100644 --- a/source/core.ads +++ b/source/core.ads @@ -36,7 +36,7 @@ package core is subtype short_string is string (1 .. 24); subtype long_string is string (1 .. 72); - type accessor is access procedure; + type procedure_pointer is access procedure; type colour_range is range 0 .. 2 ** 32 - 1;