aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/mutationofjb/gui.cpp15
-rw-r--r--engines/mutationofjb/module.mk1
-rw-r--r--engines/mutationofjb/mutationofjb.h1
-rw-r--r--engines/mutationofjb/widgets/imagewidget.cpp37
-rw-r--r--engines/mutationofjb/widgets/imagewidget.h44
5 files changed, 95 insertions, 3 deletions
diff --git a/engines/mutationofjb/gui.cpp b/engines/mutationofjb/gui.cpp
index 76e93056d0..c7be3559d8 100644
--- a/engines/mutationofjb/gui.cpp
+++ b/engines/mutationofjb/gui.cpp
@@ -29,6 +29,7 @@
#include "mutationofjb/util.h"
#include "mutationofjb/widgets/widget.h"
#include "mutationofjb/widgets/inventorywidget.h"
+#include "mutationofjb/widgets/imagewidget.h"
#include "common/rect.h"
#include "graphics/screen.h"
@@ -52,7 +53,11 @@ enum {
INVENTORY_ITEM_WIDTH = 34,
INVENTORY_ITEM_HEIGHT = 33,
INVENTORY_ITEMS_PER_LINE = 8,
- INVENTORY_ITEMS_LINES = 5
+ INVENTORY_ITEMS_LINES = 5,
+ CONVERSATION_X = 0,
+ CONVERSATION_Y = 139,
+ CONVERSATION_WIDTH = 320,
+ CONVERSATION_HEIGHT = 61
};
@@ -86,6 +91,12 @@ bool Gui::init() {
_game.getGameData().getInventory().setObserver(this);
// Init widgets.
+
+ const Common::Rect backgroundRect(CONVERSATION_X, CONVERSATION_Y, CONVERSATION_X + CONVERSATION_WIDTH, CONVERSATION_Y + CONVERSATION_HEIGHT);
+ const Graphics::Surface backgroundSurface = _hudSurfaces[0].getSubArea(backgroundRect);
+ ImageWidget *image = new ImageWidget(*this, backgroundRect, backgroundSurface);
+ _widgets.push_back(image);
+
_inventoryWidget = new InventoryWidget(*this, _inventoryItems, _inventorySurfaces);
_widgets.push_back(_inventoryWidget);
@@ -170,7 +181,7 @@ void HudAnimationDecoderCallback::onPaletteUpdated(byte [PALETTE_SIZE]) {
}
void HudAnimationDecoderCallback::onFrame(int frameNo, Graphics::Surface &surface) {
- if (frameNo == 0 || frameNo == 1 || frameNo == 3) {
+ if (frameNo == 0 || frameNo == 1 || frameNo == 4) {
Graphics::Surface outSurface;
outSurface.copyFrom(surface);
_gui._hudSurfaces.push_back(outSurface);
diff --git a/engines/mutationofjb/module.mk b/engines/mutationofjb/module.mk
index f66b67112f..8604d403f0 100644
--- a/engines/mutationofjb/module.mk
+++ b/engines/mutationofjb/module.mk
@@ -20,6 +20,7 @@ MODULE_OBJS := \
commands/saycommand.o \
commands/seqcommand.o \
widgets/buttonwidget.o \
+ widgets/imagewidget.o \
widgets/inventorywidget.o \
widgets/widget.o \
animationdecoder.o \
diff --git a/engines/mutationofjb/mutationofjb.h b/engines/mutationofjb/mutationofjb.h
index ef0c97346d..348165f081 100644
--- a/engines/mutationofjb/mutationofjb.h
+++ b/engines/mutationofjb/mutationofjb.h
@@ -57,7 +57,6 @@ private:
Console *_console;
Graphics::Screen *_screen;
Game *_game;
- ActionInfo::Action _currentAction;
uint8 _mapObjectId;
};
diff --git a/engines/mutationofjb/widgets/imagewidget.cpp b/engines/mutationofjb/widgets/imagewidget.cpp
new file mode 100644
index 0000000000..3395da8afa
--- /dev/null
+++ b/engines/mutationofjb/widgets/imagewidget.cpp
@@ -0,0 +1,37 @@
+/* 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.
+ *
+ */
+
+#include "mutationofjb/widgets/imagewidget.h"
+#include "graphics/managed_surface.h"
+
+namespace MutationOfJB {
+
+ImageWidget::ImageWidget(Gui &gui, const Common::Rect &area, const Graphics::Surface &image) :
+ Widget(gui, area),
+ _image(image) {}
+
+
+void ImageWidget::_draw(Graphics::ManagedSurface &surface) {
+ surface.blitFrom(_image, Common::Point(_area.left, _area.top));
+}
+
+}
diff --git a/engines/mutationofjb/widgets/imagewidget.h b/engines/mutationofjb/widgets/imagewidget.h
new file mode 100644
index 0000000000..4585a72ee8
--- /dev/null
+++ b/engines/mutationofjb/widgets/imagewidget.h
@@ -0,0 +1,44 @@
+/* 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 MUTATIONOFJB_IMAGEWIDGET_H
+#define MUTATIONOFJB_IMAGEWIDGET_H
+
+#include "mutationofjb/widgets/widget.h"
+#include "graphics/surface.h"
+
+namespace MutationOfJB {
+
+class ImageWidget : public Widget {
+public:
+ ImageWidget(Gui &gui, const Common::Rect &area, const Graphics::Surface &image);
+
+protected:
+ virtual void _draw(Graphics::ManagedSurface &surface) override;
+
+private:
+ Graphics::Surface _image;
+};
+
+}
+
+#endif