From 2300b6ef13d6e5e93046effe1a8243b6142c7f36 Mon Sep 17 00:00:00 2001 From: "Glenn Y. Rolland" Date: Fri, 22 Feb 2008 23:49:21 +0100 Subject: [PATCH] A lot of minor updates. But still broken. --- Game.ml | 7 +++++++ Level.ml | 46 ++++++++++++++++++++++++++++++++++++++++++++++ Makefile | 4 +++- Maze.ml | 31 ------------------------------- Menu.ml | 16 ++++++++++++++++ Player.ml | 2 +- Timeline.ml | 8 ++++++++ menu.gui | 2 ++ 8 files changed, 83 insertions(+), 33 deletions(-) create mode 100644 Level.ml delete mode 100644 Maze.ml create mode 100644 Menu.ml create mode 100644 Timeline.ml create mode 100644 menu.gui diff --git a/Game.ml b/Game.ml index 2ced227..4670890 100644 --- a/Game.ml +++ b/Game.ml @@ -1,5 +1,12 @@ (* vim: set st=2 sw=2 et : *) +type game_t = { + level: Level.level_t ; + players: Player.player_t array ; + (* monsters: Monster.monster.t array ; *) + timeline : Timeline.timeline_t ; +} + let rec refresh_input () = (* poll events *) let get_handler_fun ev = diff --git a/Level.ml b/Level.ml new file mode 100644 index 0000000..b6644f8 --- /dev/null +++ b/Level.ml @@ -0,0 +1,46 @@ +type item_t = + | Item_bonus + | Item_malus + | Item_none +;; + +type block_t = + | Block_solid + | Block_reakable + | Block_none +;; + +type tileset_t = + | Tileset_winter (* ice cubes, *) + | Tileset_summer (* mice, *) + | Tileset_brick + | Tileset_ufo (* rhombicuboctaedron, robots, etc. *) + | Tileset_library (* crayon, books, papers, *) +;; + +type level_t = { + size_x : int ; + size_y : int ; + items : (item_t ref) array array ; + blocks : (block_t ref) array array ; + background: string ; (* FIXME: animated background *) + foreground: string ; (* FIXME: animated foreground *) + tileset : tileset_t; +};; + + +let default_x = 17;; + +let default_y = 11;; + +let create () = { + size_x = default_x ; + size_y = default_y ; + items = Array.make_matrix default_x default_y (ref Item_none) ; + blocks = Array.make_matrix default_x default_y (ref Block_none) ; + tileset = Tileset_winter; + background = "none" ; + foreground = "noon" ; +} +;; + diff --git a/Makefile b/Makefile index ed788dc..5f10c37 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,9 @@ PROGRAMS=justnukeit justnukeit_OBJS= \ Position \ - Maze \ + Timeline \ + Menu \ + Level \ Player \ Joystick \ Keyboard \ diff --git a/Maze.ml b/Maze.ml deleted file mode 100644 index 878ee88..0000000 --- a/Maze.ml +++ /dev/null @@ -1,31 +0,0 @@ -type item_t = - | Bonus - | Malus - | NoItem -;; - -type block_t = - | Solid - | Breakable - | NoBlock -;; - -type t = { - mutable size_x : int ; - mutable size_y : int ; - mutable items : item_t array array ; - mutable blocks : block_t array array ; -};; - - -let default_x = 10;; - -let default_y = 10;; - -let create () = { - size_x = default_x ; - size_y = default_y ; - items = Array.make_matrix default_x default_y NoItem ; - blocks = Array.make_matrix default_x default_y NoBlock ; -} -;; diff --git a/Menu.ml b/Menu.ml new file mode 100644 index 0000000..65375e5 --- /dev/null +++ b/Menu.ml @@ -0,0 +1,16 @@ + +type widget_t = + | Menu_text of string + | Menu_image of + | Menu_clickable +;; + +type menu_t = { + widgets : widget_t list ; + click_handle : Position.position_t -> unit ; + keyboard_handle : string (* Keyboard.a *) + +;; + +let handle_click pos = + diff --git a/Player.ml b/Player.ml index 2ff5264..a708742 100644 --- a/Player.ml +++ b/Player.ml @@ -1,5 +1,5 @@ -type t = { +type player_t = { mutable name : string ; mutable lifes : int ; mutable position : Position.t; diff --git a/Timeline.ml b/Timeline.ml new file mode 100644 index 0000000..ca4dc70 --- /dev/null +++ b/Timeline.ml @@ -0,0 +1,8 @@ + +type timeslice_t = { + (* Action *) + label: string ; +} + +type timeline_t = timeslice_t list + diff --git a/menu.gui b/menu.gui new file mode 100644 index 0000000..31840f0 --- /dev/null +++ b/menu.gui @@ -0,0 +1,2 @@ +menu "main" { + label