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. private package Entities.Players.Keen.States is 
  10.  
  11.     -- Returns a reference to the singleton State object for the corresponding 
  12.     -- Action_Type. 
  13.     function Get_State( action : Action_Type ) return A_State; 
  14.     pragma Postcondition( Get_State'Result /= null ); 
  15.  
  16.     ---------------------------------------------------------------------------- 
  17.  
  18.     type Moving_State is new State with null record; 
  19.     type Looking_State is new State with null record; 
  20.     type Looking_Back_State is new State with null record; 
  21.     type Teleporting_State is new State with null record; 
  22.     type Idle_State is new State with null record; 
  23.     type Rising_State is new State with null record; 
  24.     type Dying_State is new State with null record; 
  25.     type Climbing_State is new State with null record; 
  26.  
  27.     function Get_Frame( this : Moving_State;       k : Keen'Class ) return Natural; 
  28.     function Get_Frame( this : Looking_State;      k : Keen'Class ) return Natural; 
  29.     function Get_Frame( this : Looking_Back_State; k : Keen'Class ) return Natural; 
  30.     function Get_Frame( this : Teleporting_State;  k : Keen'Class ) return Natural; 
  31.     function Get_Frame( this : Idle_State;         k : Keen'Class ) return Natural; 
  32.     function Get_Frame( this : Rising_State;       k : Keen'Class ) return Natural; 
  33.     function Get_Frame( this : Dying_State;        k : Keen'Class ) return Natural; 
  34.     function Get_Frame( this : Climbing_State;     k : Keen'Class ) return Natural; 
  35.  
  36.     procedure Update( this : Moving_State;       k : A_Keen; time : Tick_Time ); 
  37.     procedure Update( this : Looking_State;      k : A_Keen; time : Tick_Time ); 
  38.     procedure Update( this : Looking_Back_State; k : A_Keen; time : Tick_Time ); 
  39.     procedure Update( this : Teleporting_State;  k : A_Keen; time : Tick_Time ); 
  40.     procedure Update( this : Idle_State;         k : A_Keen; time : Tick_Time ); 
  41.     procedure Update( this : Rising_State;       k : A_Keen; time : Tick_Time ); 
  42.     procedure Update( this : Dying_State;        k : A_Keen; time : Tick_Time ); 
  43.     procedure Update( this : Climbing_State;     k : A_Keen; time : Tick_Time ); 
  44.  
  45. end Entities.Players.Keen.States;