1. private with Events.Entities; 
  2. private with Events.Ked; 
  3. private with Events.World; 
  4. private with Tools; 
  5.  
  6. package Games.Ked is 
  7.  
  8.     pragma Elaborate_Body; 
  9.  
  10. private 
  11.  
  12.     use Events.Entities; 
  13.     use Events.Ked; 
  14.     use Events.World; 
  15.     use Tools; 
  16.  
  17.     type Ked_Game is new Game with 
  18.         record 
  19.             tool : A_Tool := null; 
  20.         end record; 
  21.  
  22.     procedure Construct( this : access Ked_Game ); 
  23.  
  24.     procedure Delete( this : in out Ked_Game ); 
  25.  
  26.     procedure Handle_Apply_Tool( this : access Ked_Game; 
  27.                                  evt  : not null A_Apply_Tool_Map_Event ); 
  28.  
  29.     procedure Handle_Create_World( this : access Ked_Game; 
  30.                                    evt  : not null A_Create_World_Event; 
  31.                                    resp : out Response_Type ); 
  32.  
  33.     procedure Handle_Event( this : access Ked_Game; 
  34.                             evt  : in out A_Event; 
  35.                             resp : out Response_Type ); 
  36.     pragma Precondition( evt /= null ); 
  37.  
  38.     procedure Handle_Import_World( this : access Ked_Game; 
  39.                                    evt  : not null A_Import_World_Event; 
  40.                                    resp : out Response_Type ); 
  41.  
  42.     procedure Handle_Impulse( this : access Ked_Game; 
  43.                               evt  : not null A_Impulse_Event ); 
  44.  
  45.     procedure Handle_Resize_World( this : access Ked_Game; 
  46.                                    evt  : not null A_Resize_World_Event; 
  47.                                    resp : out Response_Type ); 
  48.  
  49.     procedure Handle_Save_World( this : access Ked_Game; 
  50.                                  evt  : not null A_Save_World_Event; 
  51.                                  resp : out Response_Type ); 
  52.  
  53.     procedure Handle_Set_Tool( this : access Ked_Game; 
  54.                                evt  : not null A_Set_Tool_Event ); 
  55.  
  56.     procedure Handle_Set_World_Property( this : access Ked_Game; 
  57.                                          evt  : not null A_Set_World_Property_Event ); 
  58.  
  59.     procedure New_Game( this : access Ked_Game ); 
  60.  
  61.     procedure Start( this : access Ked_Game ); 
  62.  
  63.     procedure Stop( this : access Ked_Game ); 
  64.  
  65. end Games.Ked;