with Tiles.Keen; use Tiles.Keen;
package Worlds.Keen is
pragma Elaborate_Body;
type Keen_World is new World_Object with private;
type A_Keen_World is access all Keen_World'Class;
function Get_Action( this : access Keen_World;
x, y : Integer ) return Action_Type;
private
type Keen_World is new World_Object with
record
introduction : Unbounded_String;
end record;
procedure Construct( this : access Keen_World );
procedure Construct( this : access Keen_World;
width,
height : Positive;
libName,
domain : String );
pragma Precondition( libName'Length > 0 );
pragma Precondition( domain'Length > 0 );
procedure Queue_Load_Events( this : access Keen_World );
procedure Set_Property( this : access Keen_World; name, value : String );
pragma Precondition( name'Length > 0 );
function Object_Input( stream : access Root_Stream_Type'Class ) return Keen_World;
for Keen_World'Input use Object_Input;
procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Keen_World );
for Keen_World'Read use Object_Read;
procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Keen_World );
for Keen_World'Write use Object_Write;
end Worlds.Keen;