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.Items.Keen4 is 
  10.  
  11. private 
  12.  
  13.     type Blue_Gem is new Item with null record; 
  14.  
  15.     procedure Construct( this : access Blue_Gem ); 
  16.  
  17.     procedure Give_Item( this : access Blue_Gem ); 
  18.  
  19.     function Object_Input( stream : access Root_Stream_Type'Class ) return Blue_Gem; 
  20.     for Blue_Gem'Input use Object_Input; 
  21.  
  22.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Blue_Gem ); 
  23.     for Blue_Gem'Read use Object_Read; 
  24.  
  25.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Blue_Gem ); 
  26.     for Blue_Gem'Write use Object_Write; 
  27.  
  28.     ---------------------------------------------------------------------------- 
  29.  
  30.     type Candybar is new Item with null record; 
  31.  
  32.     procedure Construct( this : access Candybar ); 
  33.  
  34.     procedure Give_Item( this : access Candybar ); 
  35.  
  36.     function Object_Input( stream : access Root_Stream_Type'Class ) return Candybar; 
  37.     for Candybar'Input use Object_Input; 
  38.  
  39.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Candybar ); 
  40.     for Candybar'Read use Object_Read; 
  41.  
  42.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Candybar ); 
  43.     for Candybar'Write use Object_Write; 
  44.  
  45.     ---------------------------------------------------------------------------- 
  46.  
  47.     type Donut is new Item with null record; 
  48.  
  49.     procedure Construct( this : access Donut ); 
  50.  
  51.     procedure Give_Item( this : access Donut ); 
  52.  
  53.     function Object_Input( stream : access Root_Stream_Type'Class ) return Donut; 
  54.     for Donut'Input use Object_Input; 
  55.  
  56.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Donut ); 
  57.     for Donut'Read use Object_Read; 
  58.  
  59.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Donut ); 
  60.     for Donut'Write use Object_Write; 
  61.  
  62.     ---------------------------------------------------------------------------- 
  63.  
  64.     type Drop is new Item with null record; 
  65.  
  66.     procedure Construct( this : access Drop ); 
  67.  
  68.     procedure Give_Item( this : access Drop ); 
  69.  
  70.     function Object_Input( stream : access Root_Stream_Type'Class ) return Drop; 
  71.     for Drop'Input use Object_Input; 
  72.  
  73.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Drop ); 
  74.     for Drop'Read use Object_Read; 
  75.  
  76.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Drop ); 
  77.     for Drop'Write use Object_Write; 
  78.  
  79.     ---------------------------------------------------------------------------- 
  80.  
  81.     type Flask is new Item with null record; 
  82.  
  83.     procedure Construct( this : access Flask ); 
  84.  
  85.     procedure Give_Item( this : access Flask ); 
  86.  
  87.     function Object_Input( stream : access Root_Stream_Type'Class ) return Flask; 
  88.     for Flask'Input use Object_Input; 
  89.  
  90.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Flask ); 
  91.     for Flask'Read use Object_Read; 
  92.  
  93.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Flask ); 
  94.     for Flask'Write use Object_Write; 
  95.  
  96.     ---------------------------------------------------------------------------- 
  97.  
  98.     type Green_Gem is new Item with null record; 
  99.  
  100.     procedure Construct( this : access Green_Gem ); 
  101.  
  102.     procedure Give_Item( this : access Green_Gem ); 
  103.  
  104.     function Object_Input( stream : access Root_Stream_Type'Class ) return Green_Gem; 
  105.     for Green_Gem'Input use Object_Input; 
  106.  
  107.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Green_Gem ); 
  108.     for Green_Gem'Read use Object_Read; 
  109.  
  110.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Green_Gem ); 
  111.     for Green_Gem'Write use Object_Write; 
  112.  
  113.     ---------------------------------------------------------------------------- 
  114.  
  115.     type Gum is new Item with null record; 
  116.  
  117.     procedure Construct( this : access Gum ); 
  118.  
  119.     procedure Give_Item( this : access Gum ); 
  120.  
  121.     function Object_Input( stream : access Root_Stream_Type'Class ) return Gum; 
  122.     for Gum'Input use Object_Input; 
  123.  
  124.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Gum ); 
  125.     for Gum'Read use Object_Read; 
  126.  
  127.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Gum ); 
  128.     for Gum'Write use Object_Write; 
  129.  
  130.     ---------------------------------------------------------------------------- 
  131.  
  132.     type Icecream is new Item with null record; 
  133.  
  134.     procedure Construct( this : access Icecream ); 
  135.  
  136.     procedure Give_Item( this : access Icecream ); 
  137.  
  138.     function Object_Input( stream : access Root_Stream_Type'Class ) return Icecream; 
  139.     for Icecream'Input use Object_Input; 
  140.  
  141.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Icecream ); 
  142.     for Icecream'Read use Object_Read; 
  143.  
  144.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Icecream ); 
  145.     for Icecream'Write use Object_Write; 
  146.  
  147.     ---------------------------------------------------------------------------- 
  148.  
  149.     type Jawbreaker is new Item with null record; 
  150.  
  151.     procedure Construct( this : access Jawbreaker ); 
  152.  
  153.     procedure Give_Item( this : access Jawbreaker ); 
  154.  
  155.     function Object_Input( stream : access Root_Stream_Type'Class ) return Jawbreaker; 
  156.     for Jawbreaker'Input use Object_Input; 
  157.  
  158.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Jawbreaker ); 
  159.     for Jawbreaker'Read use Object_Read; 
  160.  
  161.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Jawbreaker ); 
  162.     for Jawbreaker'Write use Object_Write; 
  163.  
  164.     ---------------------------------------------------------------------------- 
  165.  
  166.     type Red_Gem is new Item with null record; 
  167.  
  168.     procedure Construct( this : access Red_Gem ); 
  169.  
  170.     procedure Give_Item( this : access Red_Gem ); 
  171.  
  172.     function Object_Input( stream : access Root_Stream_Type'Class ) return Red_Gem; 
  173.     for Red_Gem'Input use Object_Input; 
  174.  
  175.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Red_Gem ); 
  176.     for Red_Gem'Read use Object_Read; 
  177.  
  178.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Red_Gem ); 
  179.     for Red_Gem'Write use Object_Write; 
  180.  
  181.     ---------------------------------------------------------------------------- 
  182.  
  183.     type Soda is new Item with null record; 
  184.  
  185.     procedure Construct( this : access Soda ); 
  186.  
  187.     procedure Give_Item( this : access Soda ); 
  188.  
  189.     function Object_Input( stream : access Root_Stream_Type'Class ) return Soda; 
  190.     for Soda'Input use Object_Input; 
  191.  
  192.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Soda ); 
  193.     for Soda'Read use Object_Read; 
  194.  
  195.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Soda ); 
  196.     for Soda'Write use Object_Write; 
  197.  
  198.     ---------------------------------------------------------------------------- 
  199.  
  200.     type Stunner is new Item with null record; 
  201.  
  202.     procedure Construct( this : access Stunner ); 
  203.  
  204.     procedure Give_Item( this : access Stunner ); 
  205.  
  206.     function Object_Input( stream : access Root_Stream_Type'Class ) return Stunner; 
  207.     for Stunner'Input use Object_Input; 
  208.  
  209.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Stunner ); 
  210.     for Stunner'Read use Object_Read; 
  211.  
  212.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Stunner ); 
  213.     for Stunner'Write use Object_Write; 
  214.  
  215.     ---------------------------------------------------------------------------- 
  216.  
  217.     type Yellow_Gem is new Item with null record; 
  218.  
  219.     procedure Construct( this : access Yellow_Gem ); 
  220.  
  221.     procedure Give_Item( this : access Yellow_Gem ); 
  222.  
  223.     function Object_Input( stream : access Root_Stream_Type'Class ) return Yellow_Gem; 
  224.     for Yellow_Gem'Input use Object_Input; 
  225.  
  226.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Yellow_Gem ); 
  227.     for Yellow_Gem'Read use Object_Read; 
  228.  
  229.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Yellow_Gem ); 
  230.     for Yellow_Gem'Write use Object_Write; 
  231.  
  232. end Entities.Items.Keen4;