1. package Entities.Enemies.Keen4 is 
  2.  
  3.     type Arachnut is new Enemy with private; 
  4.     type Bounder  is new Enemy with private; 
  5.     type Cloud    is new Enemy with private; 
  6.     type Inchworm is new Enemy with private; 
  7.     type Lick     is new Enemy with private; 
  8.     type Mimrock  is new Enemy with private; 
  9.     type Mushroom is new Enemy with private; 
  10.     type Slug     is new Enemy with private; 
  11.     type Snake    is new Enemy with private; 
  12.  
  13. private 
  14.  
  15.     type Arachnut is new Enemy with null record; 
  16.  
  17.     procedure Construct( this : access Arachnut ); 
  18.  
  19.     function Object_Input( stream : access Root_Stream_Type'Class ) return Arachnut; 
  20.     for Arachnut'Input use Object_Input; 
  21.  
  22.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Arachnut ); 
  23.     for Arachnut'Read use Object_Read; 
  24.  
  25.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Arachnut ); 
  26.     for Arachnut'Write use Object_Write; 
  27.  
  28.     ---------------------------------------------------------------------------- 
  29.  
  30.     type Bounder is new Enemy with null record; 
  31.  
  32.     procedure Construct( this : access Bounder ); 
  33.  
  34.     function Object_Input( stream : access Root_Stream_Type'Class ) return Bounder; 
  35.     for Bounder'Input use Object_Input; 
  36.  
  37.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Bounder ); 
  38.     for Bounder'Read use Object_Read; 
  39.  
  40.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Bounder ); 
  41.     for Bounder'Write use Object_Write; 
  42.  
  43.     ---------------------------------------------------------------------------- 
  44.  
  45.     type Cloud is new Enemy with null record; 
  46.  
  47.     procedure Construct( this : access Cloud ); 
  48.  
  49.     function Object_Input( stream : access Root_Stream_Type'Class ) return Cloud; 
  50.     for Cloud'Input use Object_Input; 
  51.  
  52.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Cloud ); 
  53.     for Cloud'Read use Object_Read; 
  54.  
  55.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Cloud ); 
  56.     for Cloud'Write use Object_Write; 
  57.  
  58.     ---------------------------------------------------------------------------- 
  59.  
  60.     type Inchworm is new Enemy with null record; 
  61.  
  62.     procedure Construct( this : access Inchworm ); 
  63.  
  64.     function Object_Input( stream : access Root_Stream_Type'Class ) return Inchworm; 
  65.     for Inchworm'Input use Object_Input; 
  66.  
  67.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Inchworm ); 
  68.     for Inchworm'Read use Object_Read; 
  69.  
  70.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Inchworm ); 
  71.     for Inchworm'Write use Object_Write; 
  72.  
  73.     ---------------------------------------------------------------------------- 
  74.  
  75.     type Lick is new Enemy with null record; 
  76.  
  77.     procedure Construct( this : access Lick ); 
  78.  
  79.     function Object_Input( stream : access Root_Stream_Type'Class ) return Lick; 
  80.     for Lick'Input use Object_Input; 
  81.  
  82.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Lick ); 
  83.     for Lick'Read use Object_Read; 
  84.  
  85.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Lick ); 
  86.     for Lick'Write use Object_Write; 
  87.  
  88.     ---------------------------------------------------------------------------- 
  89.  
  90.     type Mimrock is new Enemy with null record; 
  91.  
  92.     procedure Construct( this : access Mimrock ); 
  93.  
  94.     function Object_Input( stream : access Root_Stream_Type'Class ) return Mimrock; 
  95.     for Mimrock'Input use Object_Input; 
  96.  
  97.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Mimrock ); 
  98.     for Mimrock'Read use Object_Read; 
  99.  
  100.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Mimrock ); 
  101.     for Mimrock'Write use Object_Write; 
  102.  
  103.     ---------------------------------------------------------------------------- 
  104.  
  105.     type Mushroom is new Enemy with null record; 
  106.  
  107.     procedure Construct( this : access Mushroom ); 
  108.  
  109.     function Object_Input( stream : access Root_Stream_Type'Class ) return Mushroom; 
  110.     for Mushroom'Input use Object_Input; 
  111.  
  112.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Mushroom ); 
  113.     for Mushroom'Read use Object_Read; 
  114.  
  115.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Mushroom ); 
  116.     for Mushroom'Write use Object_Write; 
  117.  
  118.     ---------------------------------------------------------------------------- 
  119.  
  120.     type Slug is new Enemy with null record; 
  121.  
  122.     procedure Construct( this : access Slug ); 
  123.  
  124.     function Object_Input( stream : access Root_Stream_Type'Class ) return Slug; 
  125.     for Slug'Input use Object_Input; 
  126.  
  127.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Slug ); 
  128.     for Slug'Read use Object_Read; 
  129.  
  130.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Slug ); 
  131.     for Slug'Write use Object_Write; 
  132.  
  133.     ---------------------------------------------------------------------------- 
  134.  
  135.     type Snake is new Enemy with null record; 
  136.  
  137.     procedure Construct( this : access Snake ); 
  138.  
  139.     function Object_Input( stream : access Root_Stream_Type'Class ) return Snake; 
  140.     for Snake'Input use Object_Input; 
  141.  
  142.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Snake ); 
  143.     for Snake'Read use Object_Read; 
  144.  
  145.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Snake ); 
  146.     for Snake'Write use Object_Write; 
  147.  
  148. end Entities.Enemies.Keen4;