diff options
-rw-r--r-- | engines/mutationofjb/gui.cpp | 15 | ||||
-rw-r--r-- | engines/mutationofjb/module.mk | 1 | ||||
-rw-r--r-- | engines/mutationofjb/mutationofjb.h | 1 | ||||
-rw-r--r-- | engines/mutationofjb/widgets/imagewidget.cpp | 37 | ||||
-rw-r--r-- | engines/mutationofjb/widgets/imagewidget.h | 44 |
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 |