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 Games.Keen is 
  10.  
  11. private 
  12.  
  13.     type Keen_Game is new Game with 
  14.         record 
  15.             dialogId   : Integer := Integer'First;    -- current open dialog 
  16.             mapWorld   : A_World; 
  17.             playingMap : Boolean := True;    -- playing the overhead map 
  18.         end record; 
  19.  
  20.     procedure Add_Event_Listeners( this : access Keen_Game ); 
  21.  
  22.     procedure Delete( this : in out Keen_Game ); 
  23.  
  24.     procedure End_Game( this : access Keen_Game; interrupted : Boolean ); 
  25.  
  26.     procedure Handle_Event( this : access Keen_Game; 
  27.                             evt  : in out A_Event; 
  28.                             resp : out Response_Type ); 
  29.     pragma Precondition( evt /= null ); 
  30.  
  31.     -- Called when the Load_World event is received, to load the next level. If 
  32.     -- the world name to load is an empty string, the current level will be 
  33.     -- exited, marked as complete, and the overhead map will be loaded. No 
  34.     -- exception will be raised on error; the error message will be put into the 
  35.     -- response 'resp'. 
  36.     procedure Handle_Load_World( this : access Keen_Game; 
  37.                                  evt  : not null A_Load_World_Event; 
  38.                                  resp : out Response_Type ); 
  39.  
  40.     procedure New_Game( this : access Keen_Game ); 
  41.  
  42.     procedure Pause( this : access Keen_Game; enabled : Boolean ); 
  43.  
  44.     procedure Remove_Event_Listeners( this : access Keen_Game ); 
  45.  
  46. end Games.Keen;