aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/bladerunner.cpp
diff options
context:
space:
mode:
authorThomas Fach-Pedersen2015-05-01 09:43:04 +0200
committerEugene Sandulenko2016-09-29 22:33:38 +0200
commit0fa2191b9532c353ab40a82ee3c29e822dc09840 (patch)
tree355b46c661084d83610f1331cbe81cd71e13280d /engines/bladerunner/bladerunner.cpp
parentda33169b75021d19f35867aca2b9322c1aec0005 (diff)
downloadscummvm-rg350-0fa2191b9532c353ab40a82ee3c29e822dc09840.tar.gz
scummvm-rg350-0fa2191b9532c353ab40a82ee3c29e822dc09840.tar.bz2
scummvm-rg350-0fa2191b9532c353ab40a82ee3c29e822dc09840.zip
BLADERUNNER: Implement loading and drawing of mouse cursors.
Diffstat (limited to 'engines/bladerunner/bladerunner.cpp')
-rw-r--r--engines/bladerunner/bladerunner.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index 13ccae7fed..aa2850a1c9 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -28,19 +28,22 @@
#include "bladerunner/audio_speech.h"
#include "bladerunner/chapters.h"
#include "bladerunner/clues.h"
-#include "bladerunner/gameinfo.h"
#include "bladerunner/gameflags.h"
+#include "bladerunner/gameinfo.h"
#include "bladerunner/image.h"
+#include "bladerunner/mouse.h"
#include "bladerunner/outtake.h"
#include "bladerunner/scene.h"
#include "bladerunner/script/init.h"
#include "bladerunner/script/script.h"
#include "bladerunner/settings.h"
+#include "bladerunner/shape.h"
#include "bladerunner/slice_animations.h"
#include "bladerunner/slice_renderer.h"
#include "bladerunner/text_resource.h"
#include "bladerunner/vqa_decoder.h"
+#include "common/array.h"
#include "common/error.h"
#include "common/events.h"
#include "common/system.h"
@@ -66,6 +69,7 @@ BladeRunnerEngine::BladeRunnerEngine(OSystem *syst)
_gameInfo = nullptr;
_gameFlags = new GameFlags();
_gameVars = nullptr;
+ _mouse = new Mouse(this);
_scene = new Scene(this);
_script = new Script(this);
_settings = new Settings(this);
@@ -168,6 +172,13 @@ bool BladeRunnerEngine::startup() {
if (!r)
return false;
+ for (int i = 0; i != 43; ++i) {
+ Shape *shape = new Shape(this);
+ shape->readFromContainer("SHAPES.SHP", i);
+ _shapes.push_back(shape);
+ }
+ _mouse->setCursor(0);
+
r = _sliceAnimations->open("INDEX.DAT");
if (!r)
return false;
@@ -299,6 +310,10 @@ void BladeRunnerEngine::gameTick() {
// TODO: Draw item pickup (understood, drawing works in Replicant)
// TODO: Draw dialogue menu
// TODO: Draw mouse (understood)
+
+ Common::Point p = _eventMan->getMousePos();
+ _mouse->draw(_surface2, p.x, p.y);
+
// TODO: Process AUD (audio in Replicant)
// TODO: Footstep sound