package Tiles.Keen is
type Action_Type is (NONE, HAZZARD, POLE, WATER, END_LEVEL, ENTER_LEVEL);
function ">"( l, r : Action_Type ) return Boolean;
type Keen_Tile is new Tile_Object with private;
type A_Keen_Tile is access all Keen_Tile'Class;
function Get_Action( this : access Keen_Tile ) return Action_Type;
private
type Keen_Tile is new Tile_Object with
record
action : Action_Type := NONE;
end record;
procedure Set_Attribute( this : in out Keen_Tile;
found : out Boolean;
name : String;
val : String := "" );
pragma Precondition( name'Length > 0 );
function Object_Input( stream : access Root_Stream_Type'Class ) return Keen_Tile;
for Keen_Tile'Input use Object_Input;
procedure Object_Output( stream : access Root_Stream_Type'Class; obj : Keen_Tile );
for Keen_Tile'Output use Object_Output;
procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Keen_Tile );
for Keen_Tile'Read use Object_Read;
procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Keen_Tile );
for Keen_Tile'Write use Object_Write;
end Tiles.Keen;