1. package Entities.Sprites.Keen4 is 
  2.  
  3.     pragma Elaborate_Body; 
  4.  
  5.     type Blue_1UP is new Sprite with private; 
  6.     type Collect_Drop is new Sprite with private; 
  7.     type Collect_Gem is new Sprite with private; 
  8.     type Collect_Stunner is new Sprite with private; 
  9.     type Points_100 is new Sprite with private; 
  10.     type Points_200 is new Sprite with private; 
  11.     type Points_500 is new Sprite with private; 
  12.     type Points_1000 is new Sprite with private; 
  13.     type Points_2000 is new Sprite with private; 
  14.     type Points_5000 is new Sprite with private; 
  15.     type Stunner_Blast is new Sprite with private; 
  16.     type Stunner_Shot is new Sprite with private; 
  17.     type Yellow_1UP is new Sprite with private; 
  18.  
  19. private 
  20.  
  21.     type Blue_1UP is new Sprite with null record; 
  22.  
  23.     procedure Construct( this : access Blue_1UP ); 
  24.  
  25.     -- The access returned by this procedure should not be modified, it is for 
  26.     -- reference only! This function uses an unprotected library-level variable 
  27.     -- for caching the frames for Blue_1UP. 
  28.     function Frame_Array( this : not null access Blue_1UP'Class ) return A_Tile_Id_Array; 
  29.  
  30.     function Object_Input( stream : access Root_Stream_Type'Class ) return Blue_1UP; 
  31.     for Blue_1UP'Input use Object_Input; 
  32.  
  33.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Blue_1UP ); 
  34.     for Blue_1UP'Read use Object_Read; 
  35.  
  36.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Blue_1UP ); 
  37.     for Blue_1UP'Write use Object_Write; 
  38.  
  39.     ---------------------------------------------------------------------------- 
  40.  
  41.     type Collect_Drop is new Sprite with null record; 
  42.  
  43.     procedure Construct( this : access Collect_Drop ); 
  44.  
  45.     -- The access returned by this procedure should not be modified, it is for 
  46.     -- reference only! This function uses an unprotected library-level variable 
  47.     -- for caching the frames for Collect_Drop. 
  48.     function Frame_Array( this : not null access Collect_Drop'Class ) return A_Tile_Id_Array; 
  49.  
  50.     function Object_Input( stream : access Root_Stream_Type'Class ) return Collect_Drop; 
  51.     for Collect_Drop'Input use Object_Input; 
  52.  
  53.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Collect_Drop ); 
  54.     for Collect_Drop'Read use Object_Read; 
  55.  
  56.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Collect_Drop ); 
  57.     for Collect_Drop'Write use Object_Write; 
  58.  
  59.     ---------------------------------------------------------------------------- 
  60.  
  61.     type Collect_Gem is new Sprite with null record; 
  62.  
  63.     procedure Construct( this : access Collect_Gem ); 
  64.  
  65.     -- The access returned by this procedure should not be modified, it is for 
  66.     -- reference only! This function uses an unprotected library-level variable 
  67.     -- for caching the frames for Collect_Gem. 
  68.     function Frame_Array( this : not null access Collect_Gem'Class ) return A_Tile_Id_Array; 
  69.  
  70.     function Object_Input( stream : access Root_Stream_Type'Class ) return Collect_Gem; 
  71.     for Collect_Gem'Input use Object_Input; 
  72.  
  73.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Collect_Gem ); 
  74.     for Collect_Gem'Read use Object_Read; 
  75.  
  76.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Collect_Gem ); 
  77.     for Collect_Gem'Write use Object_Write; 
  78.  
  79.     ---------------------------------------------------------------------------- 
  80.  
  81.     type Collect_Stunner is new Sprite with null record; 
  82.  
  83.     procedure Construct( this : access Collect_Stunner ); 
  84.  
  85.     -- The access returned by this procedure should not be modified, it is for 
  86.     -- reference only! This function uses an unprotected library-level variable 
  87.     -- for caching the frames for Collect_Stunner. 
  88.     function Frame_Array( this : not null access Collect_Stunner'Class ) return A_Tile_Id_Array; 
  89.  
  90.     function Object_Input( stream : access Root_Stream_Type'Class ) return Collect_Stunner; 
  91.     for Collect_Stunner'Input use Object_Input; 
  92.  
  93.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Collect_Stunner ); 
  94.     for Collect_Stunner'Read use Object_Read; 
  95.  
  96.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Collect_Stunner ); 
  97.     for Collect_Stunner'Write use Object_Write; 
  98.  
  99.     ---------------------------------------------------------------------------- 
  100.  
  101.     type Points_100 is new Sprite with null record; 
  102.  
  103.     procedure Construct( this : access Points_100 ); 
  104.  
  105.     -- The access returned by this procedure should not be modified, it is for 
  106.     -- reference only! This function uses an unprotected library-level variable 
  107.     -- for caching the frames for Points_100. 
  108.     function Frame_Array( this : not null access Points_100'Class ) return A_Tile_Id_Array; 
  109.  
  110.     function Object_Input( stream : access Root_Stream_Type'Class ) return Points_100; 
  111.     for Points_100'Input use Object_Input; 
  112.  
  113.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Points_100 ); 
  114.     for Points_100'Read use Object_Read; 
  115.  
  116.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Points_100 ); 
  117.     for Points_100'Write use Object_Write; 
  118.  
  119.     ---------------------------------------------------------------------------- 
  120.  
  121.     type Points_200 is new Sprite with null record; 
  122.  
  123.     procedure Construct( this : access Points_200 ); 
  124.  
  125.     -- The access returned by this procedure should not be modified, it is for 
  126.     -- reference only! This function uses an unprotected library-level variable 
  127.     -- for caching the frames for Points_200. 
  128.     function Frame_Array( this : not null access Points_200'Class ) return A_Tile_Id_Array; 
  129.  
  130.     function Object_Input( stream : access Root_Stream_Type'Class ) return Points_200; 
  131.     for Points_200'Input use Object_Input; 
  132.  
  133.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Points_200 ); 
  134.     for Points_200'Read use Object_Read; 
  135.  
  136.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Points_200 ); 
  137.     for Points_200'Write use Object_Write; 
  138.  
  139.     ---------------------------------------------------------------------------- 
  140.  
  141.     type Points_500 is new Sprite with null record; 
  142.  
  143.     procedure Construct( this : access Points_500 ); 
  144.  
  145.     -- The access returned by this procedure should not be modified, it is for 
  146.     -- reference only! This function uses an unprotected library-level variable 
  147.     -- for caching the frames for Points_500. 
  148.     function Frame_Array( this : not null access Points_500'Class ) return A_Tile_Id_Array; 
  149.  
  150.     function Object_Input( stream : access Root_Stream_Type'Class ) return Points_500; 
  151.     for Points_500'Input use Object_Input; 
  152.  
  153.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Points_500 ); 
  154.     for Points_500'Read use Object_Read; 
  155.  
  156.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Points_500 ); 
  157.     for Points_500'Write use Object_Write; 
  158.  
  159.     ---------------------------------------------------------------------------- 
  160.  
  161.     type Points_1000 is new Sprite with null record; 
  162.  
  163.     procedure Construct( this : access Points_1000 ); 
  164.  
  165.     -- The access returned by this procedure should not be modified, it is for 
  166.     -- reference only! This function uses an unprotected library-level variable 
  167.     -- for caching the frames for Points_1000. 
  168.     function Frame_Array( this : not null access Points_1000'Class ) return A_Tile_Id_Array; 
  169.  
  170.     function Object_Input( stream : access Root_Stream_Type'Class ) return Points_1000; 
  171.     for Points_1000'Input use Object_Input; 
  172.  
  173.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Points_1000 ); 
  174.     for Points_1000'Read use Object_Read; 
  175.  
  176.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Points_1000 ); 
  177.     for Points_1000'Write use Object_Write; 
  178.  
  179.     ---------------------------------------------------------------------------- 
  180.  
  181.     type Points_2000 is new Sprite with null record; 
  182.  
  183.     procedure Construct( this : access Points_2000 ); 
  184.  
  185.     -- The access returned by this procedure should not be modified, it is for 
  186.     -- reference only! This function uses an unprotected library-level variable 
  187.     -- for caching the frames for Points_2000. 
  188.     function Frame_Array( this : not null access Points_2000'Class ) return A_Tile_Id_Array; 
  189.  
  190.     function Object_Input( stream : access Root_Stream_Type'Class ) return Points_2000; 
  191.     for Points_2000'Input use Object_Input; 
  192.  
  193.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Points_2000 ); 
  194.     for Points_2000'Read use Object_Read; 
  195.  
  196.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Points_2000 ); 
  197.     for Points_2000'Write use Object_Write; 
  198.  
  199.     ---------------------------------------------------------------------------- 
  200.  
  201.     type Points_5000 is new Sprite with null record; 
  202.  
  203.     procedure Construct( this : access Points_5000 ); 
  204.  
  205.     -- The access returned by this procedure should not be modified, it is for 
  206.     -- reference only! This function uses an unprotected library-level variable 
  207.     -- for caching the frames for Points_5000. 
  208.     function Frame_Array( this : not null access Points_5000'Class ) return A_Tile_Id_Array; 
  209.  
  210.     function Object_Input( stream : access Root_Stream_Type'Class ) return Points_5000; 
  211.     for Points_5000'Input use Object_Input; 
  212.  
  213.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Points_5000 ); 
  214.     for Points_5000'Read use Object_Read; 
  215.  
  216.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Points_5000 ); 
  217.     for Points_5000'Write use Object_Write; 
  218.  
  219.     ---------------------------------------------------------------------------- 
  220.  
  221.     type Stunner_Blast is new Sprite with null record; 
  222.  
  223.     procedure Construct( this : access Stunner_Blast ); 
  224.  
  225.     -- The access returned by this procedure should not be modified, it is for 
  226.     -- reference only! This function uses an unprotected library-level variable 
  227.     -- for caching the frames for Stunner_Blast. 
  228.     function Frame_Array( this : not null access Stunner_Blast'Class ) return A_Tile_Id_Array; 
  229.  
  230.     function Object_Input( stream : access Root_Stream_Type'Class ) return Stunner_Blast; 
  231.     for Stunner_Blast'Input use Object_Input; 
  232.  
  233.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Stunner_Blast ); 
  234.     for Stunner_Blast'Read use Object_Read; 
  235.  
  236.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Stunner_Blast ); 
  237.     for Stunner_Blast'Write use Object_Write; 
  238.  
  239.     ---------------------------------------------------------------------------- 
  240.  
  241.     type Stunner_Shot is new Sprite with null record; 
  242.  
  243.     procedure Construct( this : access Stunner_Shot ); 
  244.  
  245.     procedure Explode( this : not null access Stunner_Shot'Class ); 
  246.  
  247.     -- The access returned by this procedure should not be modified, it is for 
  248.     -- reference only! This function uses an unprotected library-level variable 
  249.     -- for caching the frames for Stunner_Shot. 
  250.     function Frame_Array( this : not null access Stunner_Shot'Class ) return A_Tile_Id_Array; 
  251.  
  252.     function Object_Input( stream : access Root_Stream_Type'Class ) return Stunner_Shot; 
  253.     for Stunner_Shot'Input use Object_Input; 
  254.  
  255.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Stunner_Shot ); 
  256.     for Stunner_Shot'Read use Object_Read; 
  257.  
  258.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Stunner_Shot ); 
  259.     for Stunner_Shot'Write use Object_Write; 
  260.  
  261.     procedure On_Collide( this : access Stunner_Shot; e : not null A_Entity ); 
  262.  
  263.     procedure On_Hit_Wall( this : access Stunner_Shot; dir : Cardinal_Direction ); 
  264.  
  265.     ---------------------------------------------------------------------------- 
  266.  
  267.     type Yellow_1UP is new Sprite with null record; 
  268.  
  269.     procedure Construct( this : access Yellow_1UP ); 
  270.  
  271.     -- The access returned by this procedure should not be modified, it is for 
  272.     -- reference only! This function uses an unprotected library-level variable 
  273.     -- for caching the frames for Yellow_1UP. 
  274.     function Frame_Array( this : not null access Yellow_1UP'Class ) return A_Tile_Id_Array; 
  275.  
  276.     function Object_Input( stream : access Root_Stream_Type'Class ) return Yellow_1UP; 
  277.     for Yellow_1UP'Input use Object_Input; 
  278.  
  279.     procedure Object_Read( stream : access Root_Stream_Type'Class; obj : out Yellow_1UP ); 
  280.     for Yellow_1UP'Read use Object_Read; 
  281.  
  282.     procedure Object_Write( stream : access Root_Stream_Type'Class; obj : Yellow_1UP ); 
  283.     for Yellow_1UP'Write use Object_Write; 
  284.  
  285. end Entities.Sprites.Keen4;