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