From 2950872300a419344b39b9174f4b371a240272c6 Mon Sep 17 00:00:00 2001 From: Jed Barber Date: Sun, 30 Jul 2017 22:23:20 +1000 Subject: Basic game framework done, lacking any user input --- src/things.ads | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/things.ads (limited to 'src/things.ads') diff --git a/src/things.ads b/src/things.ads new file mode 100644 index 0000000..c8da450 --- /dev/null +++ b/src/things.ads @@ -0,0 +1,63 @@ + + +private with + + FLTK.Images.RGB.PNG, + Ada.Command_Line, + Ada.Directories; + + +package Things is + + + type Thing is tagged private; + + + Nothing : constant Thing; + + + Man : constant Thing; + Treasure : constant Thing; + + + procedure Draw + (This : in Thing; + X, Y : in Integer); + + + function "=" + (A, B : in Thing) + return Boolean; + + +private + + + type Thing is tagged record + Self_Image : access FLTK.Images.RGB.PNG.PNG_Image; + end record; + + + Origin : String := Ada.Directories.Containing_Directory + (Ada.Directories.Full_Name (Ada.Command_Line.Command_Name)); + Image_Dir : String := Origin & "/../share/sokoban/img"; + + + Man_Image : aliased FLTK.Images.RGB.PNG.PNG_Image := + FLTK.Images.RGB.PNG.Create (Image_Dir & "/man.png"); + Treasure_Image : aliased FLTK.Images.RGB.PNG.PNG_Image := + FLTK.Images.RGB.PNG.Create (Image_Dir & "/treasure.png"); + + + Nothing : constant Thing := + (Self_Image => null); + + + Man : constant Thing := + (Self_Image => Man_Image'Access); + Treasure : constant Thing := + (Self_Image => Treasure_Image'Access); + + +end Things; + -- cgit