From d3193687a73b92213095db6b8bbf6b6b4614af12 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 22 Oct 2011 20:44:26 +1100 Subject: TSAGE: Beginnings of support for Return to Ringworld --- engines/tsage/user_interface.h | 148 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 engines/tsage/user_interface.h (limited to 'engines/tsage/user_interface.h') diff --git a/engines/tsage/user_interface.h b/engines/tsage/user_interface.h new file mode 100644 index 0000000000..eb38bcb740 --- /dev/null +++ b/engines/tsage/user_interface.h @@ -0,0 +1,148 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef TSAGE_USER_INTERFACE_H +#define TSAGE_USER_INTERFACE_H + +#include "common/scummsys.h" +#include "tsage/core.h" +#include "tsage/graphics.h" +#include "tsage/sound.h" + +namespace TsAGE { + +class StripProxy: public EventHandler { +public: + virtual void process(Event &event); +}; + +class UIElement: public BackgroundSceneObject { +public: + int _field88; + bool _enabled; + int _frameNum; + + virtual Common::String getClassName() { return "UIElement"; } + virtual void synchronize(Serializer &s); + + void setup(int visage, int stripNum, int frameNum, int posX, int posY, int priority); + void setEnabled(bool flag); +}; + +// This class implements the Question mark button +class UIQuestion: public UIElement { +private: + void showDescription(CursorType item); + void showItem(int resNum, int rlbNum, int frameNum); +public: + virtual void process(Event &event); + void setEnabled(bool flag); +}; + +// This class implements the score counter +class UIScore: public UIElement { +private: + void showDescription(int lineNum); +public: + UIElement _digit3, _digit2, _digit1, _digit0; + + virtual void postInit(SceneObjectList *OwnerList = NULL); + virtual void draw(); + + void updateScore(); +}; + +class UIInventorySlot: public UIElement { +public: + int _objIndex; + InvObject *_object; + + UIInventorySlot(); + virtual Common::String getClassName() { return "UIInventorySlot"; } + virtual void synchronize(Serializer &s); + virtual void process(Event &event); +}; + +class UIInventoryScroll: public UIElement { +private: + void toggle(bool pressed); +public: + bool _isLeft; + + UIInventoryScroll(); + virtual Common::String getClassName() { return "UIInventoryScroll"; } + virtual void synchronize(Serializer &s); + virtual void process(Event &event); +}; + +class UICollection: public EventHandler { +protected: + void erase(); +public: + Common::Point _position; + Rect _bounds; + bool _visible; + bool _clearScreen; + bool _cursorChanged; + Common::Array _objList; + + UICollection(); + void setup(const Common::Point &pt); + void hide(); + void show(); + void resetClear(); + void draw(); +}; + +class UIElements: public UICollection { +private: + void add(UIElement *obj); + void updateInvList(); +public: + UIElement _object1; + UIQuestion _question; + UIScore _score; + UIInventorySlot _slot1, _slot2, _slot3, _slot4; + UIInventoryScroll _scrollLeft, _scrollRight; + ASound _sound; + int _slotStart, _scoreValue; + bool _active; + Common::Array _itemList; + Visage _cursorVisage; + + UIElements(); + virtual Common::String getClassName() { return "UIElements"; } + virtual void synchronize(Serializer &s); + virtual void postInit(SceneObjectList *OwnerList = NULL) { error("Wrong init() called"); } + virtual void process(Event &event); + + void setup(const Common::Point &pt); + void updateInventory(); + void addScore(int amount); + void scrollInventory(bool isLeft); + + static void loadNotifierProc(bool postFlag); +}; + +} // End of namespace TsAGE + +#endif -- cgit v1.2.3 From 1c4bc2f567a7d31e0f716d5dfb8f57efb7875be1 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 22 Oct 2011 22:41:05 +1100 Subject: TSAGE: Hooking up Return to Ringworld to display the user interface --- engines/tsage/user_interface.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/tsage/user_interface.h') diff --git a/engines/tsage/user_interface.h b/engines/tsage/user_interface.h index eb38bcb740..7a9a78478d 100644 --- a/engines/tsage/user_interface.h +++ b/engines/tsage/user_interface.h @@ -118,7 +118,7 @@ private: void add(UIElement *obj); void updateInvList(); public: - UIElement _object1; + UIElement _background; UIQuestion _question; UIScore _score; UIInventorySlot _slot1, _slot2, _slot3, _slot4; -- cgit v1.2.3 From 784cc2bd7fa597a4f7350ed8bca8142b15d090ea Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 22 Oct 2011 23:13:16 +1100 Subject: TSAGE: Added character display to the user interface --- engines/tsage/user_interface.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'engines/tsage/user_interface.h') diff --git a/engines/tsage/user_interface.h b/engines/tsage/user_interface.h index 7a9a78478d..94a2444e39 100644 --- a/engines/tsage/user_interface.h +++ b/engines/tsage/user_interface.h @@ -128,6 +128,8 @@ public: bool _active; Common::Array _itemList; Visage _cursorVisage; + UIElement _character; + int _characterIndex; UIElements(); virtual Common::String getClassName() { return "UIElements"; } -- cgit v1.2.3 From 4c3c8f8ce3403f67d683959b947b8eb560c55bae Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Thu, 17 Nov 2011 22:04:10 +1100 Subject: TSAGE: Added new properties and stubs needed for new R2RW functionality --- engines/tsage/user_interface.h | 1 - 1 file changed, 1 deletion(-) (limited to 'engines/tsage/user_interface.h') diff --git a/engines/tsage/user_interface.h b/engines/tsage/user_interface.h index 94a2444e39..0fbfc5a00f 100644 --- a/engines/tsage/user_interface.h +++ b/engines/tsage/user_interface.h @@ -129,7 +129,6 @@ public: Common::Array _itemList; Visage _cursorVisage; UIElement _character; - int _characterIndex; UIElements(); virtual Common::String getClassName() { return "UIElements"; } -- cgit v1.2.3