private with Events.Entities;
private with Events.Ked;
private with Events.World;
private with Tools;
package Games.Ked is
pragma Elaborate_Body;
private
use Events.Entities;
use Events.Ked;
use Events.World;
use Tools;
type Ked_Game is new Game with
record
tool : A_Tool := null;
end record;
procedure Add_Event_Listeners( this : access Ked_Game );
procedure Construct( this : access Ked_Game );
procedure Delete( this : in out Ked_Game );
procedure Handle_Apply_Tool( this : access Ked_Game;
evt : not null A_Apply_Tool_Map_Event );
procedure Handle_Create_World( this : access Ked_Game;
evt : not null A_Create_World_Event;
resp : out Response_Type );
procedure Handle_Event( this : access Ked_Game;
evt : in out A_Event;
resp : out Response_Type );
pragma Precondition( evt /= null );
procedure Handle_Import_World( this : access Ked_Game;
evt : not null A_Import_World_Event;
resp : out Response_Type );
procedure Handle_Impulse( this : access Ked_Game;
evt : not null A_Impulse_Event );
procedure Handle_Resize_World( this : access Ked_Game;
evt : not null A_Resize_World_Event;
resp : out Response_Type );
procedure Handle_Save_World( this : access Ked_Game;
evt : not null A_Save_World_Event;
resp : out Response_Type );
procedure Handle_Set_Tool( this : access Ked_Game;
evt : not null A_Set_Tool_Event );
procedure Handle_Set_World_Property( this : access Ked_Game;
evt : not null A_Set_World_Property_Event );
procedure New_Game( this : access Ked_Game );
procedure Remove_Event_Listeners( this : access Ked_Game );
end Games.Ked;