aboutsummaryrefslogtreecommitdiff
path: root/engines/zvision/menu.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/zvision/menu.h')
-rw-r--r--engines/zvision/menu.h94
1 files changed, 93 insertions, 1 deletions
diff --git a/engines/zvision/menu.h b/engines/zvision/menu.h
index affc69abd5..c5938cdc3d 100644
--- a/engines/zvision/menu.h
+++ b/engines/zvision/menu.h
@@ -23,6 +23,98 @@
#ifndef ZVISION_MENU_H
#define ZVISION_MENU_H
-// TODO: Implement MenuHandler
+#include "graphics/surface.h"
+#include "common/rect.h"
+
+#include "zvision/zvision.h"
+#include "zvision/script_manager.h"
+
+namespace ZVision {
+
+enum menuBar {
+ menuBar_Exit = 0x1,
+ menuBar_Settings = 0x2,
+ menuBar_Restore = 0x4,
+ menuBar_Save = 0x8,
+ menuBar_Items = 0x100,
+ menuBar_Magic = 0x200
+};
+
+class menuHandler {
+public:
+ menuHandler(ZVision *engine);
+ virtual ~menuHandler() {};
+ virtual void onMouseMove(const Common::Point &Pos) {};
+ virtual void onMouseDown(const Common::Point &Pos) {};
+ virtual void onMouseUp(const Common::Point &Pos) {};
+ virtual void process(uint32 deltaTimeInMillis) {};
+protected:
+ uint16 menu_bar_flag;
+ ZVision *_engine;
+};
+
+class menuZgi: public menuHandler {
+public:
+ menuZgi(ZVision *engine);
+ ~menuZgi();
+ void onMouseMove(const Common::Point &Pos);
+ void onMouseUp(const Common::Point &Pos);
+ void process(uint32 deltaTimeInMillis);
+private:
+ Graphics::Surface menuback[3][2];
+ Graphics::Surface menubar[4][2];
+
+
+ Graphics::Surface *items[50][2];
+ uint item_id[50];
+
+ Graphics::Surface *magic[12][2];
+ uint magic_id[12];
+
+ int menu_mousefocus;
+ bool inmenu;
+
+ int mouse_on_item;
+
+ bool scrolled[3];
+ float scrollPos[3];
+
+ enum {
+ menu_ITEM = 0,
+ menu_MAGIC = 1,
+ menu_MAIN = 2
+ };
+
+ bool clean;
+ bool redraw;
+
+};
+
+class menuNem: public menuHandler {
+public:
+ menuNem(ZVision *engine);
+ ~menuNem();
+ void onMouseMove(const Common::Point &Pos);
+ void onMouseUp(const Common::Point &Pos);
+ void process(uint32 deltaTimeInMillis);
+private:
+ Graphics::Surface but[4][6];
+ Graphics::Surface menubar;
+
+ bool inmenu;
+
+ int mouse_on_item;
+
+ bool scrolled;
+ float scrollPos;
+
+ bool redraw;
+
+ int frm;
+ int16 delay;
+
+};
+
+}
#endif