private with Allegro.Keyboard;
private with Entities;
private with Events.Game;
private with Events.World;
package Game_Views.Keen is
type Keen_View is new Game_View with private;
type A_Keen_View is access all Keen_View'Class;
private
use Allegro.Keyboard;
use Entities;
use Events.Game;
use Events.World;
type Boolean_Key_Array is array (1..KEY_MAX) of Boolean;
type Keen_View is new Game_View with
record
gameInProgress : Boolean := False;
autoPaused : Boolean := False;
pauseEnabled : Boolean := True;
playerId : Entity_Id := INVALID_ID;
ignoreKey : Boolean_Key_Array := Boolean_Key_Array'(others => False);
end record;
procedure Handle( this : not null access Keen_View'Class;
evt : not null A_Game_Var_Changed_Event );
procedure Handle( this : not null access Keen_View'Class;
evt : not null A_Scroll_View_Event );
procedure Handle( this : not null access Keen_View'Class;
evt : not null A_World_Property_Changed_Event );
procedure Handle_Close_Request( this : access Keen_View );
procedure Handle_Event( this : access Keen_View;
evt : in out A_Event;
resp : out Response_Type );
pragma Precondition( evt /= null );
procedure Handle_Loading( this : access Keen_View; loading : Boolean );
procedure Handle( this : not null access Keen_View'Class;
evt : not null A_New_World_Event );
procedure Handle_Paused( this : access Keen_View; paused : Boolean );
procedure Start( this : access Keen_View );
procedure Stop( this : access Keen_View );
procedure Action_New_Game( this : not null access Keen_View'Class );
procedure Action_Resume_Game( this : not null access Keen_View'Class );
procedure Action_Quit( this : not null access Keen_View'Class );
procedure Auto_Pause( this : not null access Keen_View'Class;
pause : Boolean );
procedure Pause_Game( this : not null access Keen_View'Class;
pause : Boolean;
force : Boolean := False );
procedure Populate_View( this : not null access Keen_View'Class;
xres,
yres : Positive;
scale : Positive );
procedure Return_To_Menu( this : not null access Keen_View'Class );
procedure Set_Loading_Text( this : not null access Keen_View'Class;
text : String );
end Game_Views.Keen;