1. package Entities.Triggers.Keen is 
  2.  
  3.     pragma Elaborate_Body; 
  4.  
  5.     type Keen_Trigger is new Trigger with private; 
  6.  
  7. private 
  8.  
  9.     type Keen_Trigger is new Trigger with null record; 
  10.  
  11.     procedure Construct( this : access Keen_Trigger ); 
  12.  
  13.     -- Executes the 'enterlevel' trigger command. 
  14.     procedure Do_Enterlevel( this : access Keen_Trigger; levelName : String ); 
  15.  
  16.     -- Executes the 'teleport' trigger command. 
  17.     procedure Do_Teleport( this      : access Keen_Trigger; 
  18.                            arg       : String; 
  19.                            activator : not null A_Entity ); 
  20.  
  21.     procedure Execute( this      : access Keen_Trigger; 
  22.                        action, 
  23.                        argument  : String; 
  24.                        activator : A_Entity ); 
  25.  
  26.     function Object_Input( stream : access Root_Stream_Type'Class ) return Keen_Trigger; 
  27.     for Keen_Trigger'Input use Object_Input; 
  28.  
  29.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Keen_Trigger ); 
  30.     for Keen_Trigger'Read use Object_Read; 
  31.  
  32.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Keen_Trigger ); 
  33.     for Keen_Trigger'Write use Object_Write; 
  34.  
  35. end Entities.Triggers.Keen;