aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner
diff options
context:
space:
mode:
authorEugene Sandulenko2018-03-25 16:52:48 +0200
committerEugene Sandulenko2018-03-25 16:52:48 +0200
commit1b53cfff49b44004b5afb9944dbf3b2e9137b653 (patch)
treec2032c5f34a46845be3f2e3199d2915ccc17af4f /engines/bladerunner
parent399263bcdf6c2fb98b51f58348b6a370a14b831f (diff)
downloadscummvm-rg350-1b53cfff49b44004b5afb9944dbf3b2e9137b653.tar.gz
scummvm-rg350-1b53cfff49b44004b5afb9944dbf3b2e9137b653.tar.bz2
scummvm-rg350-1b53cfff49b44004b5afb9944dbf3b2e9137b653.zip
BLADERUNNER: Added skeleton for Scores class
Diffstat (limited to 'engines/bladerunner')
-rw-r--r--engines/bladerunner/bladerunner.cpp25
-rw-r--r--engines/bladerunner/bladerunner.h2
-rw-r--r--engines/bladerunner/module.mk1
-rw-r--r--engines/bladerunner/ui/scores.cpp78
-rw-r--r--engines/bladerunner/ui/scores.h61
5 files changed, 160 insertions, 7 deletions
diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index 871931a41c..5121fa86c6 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -66,6 +66,7 @@
#include "bladerunner/ui/elevator.h"
#include "bladerunner/ui/esper.h"
#include "bladerunner/ui/kia.h"
+#include "bladerunner/ui/scores.h"
#include "bladerunner/ui/spinner.h"
#include "bladerunner/ui/vk.h"
#include "bladerunner/vqa_decoder.h"
@@ -396,7 +397,7 @@ bool BladeRunnerEngine::startup(bool hasSavegames) {
_elevator = new Elevator(this);
- // TODO: Scores
+ _scores = new Scores(this);
_mainFont = new Font(this);
_mainFont->open("KIA6PT.FON", 640, 480, -1, 0, 0x252D);
@@ -596,7 +597,8 @@ void BladeRunnerEngine::shutdown() {
// TODO: Delete Flee waypoints
- // TODO: Delete Scores
+ delete _scores;
+ _scores = nullptr;
delete _elevator;
_elevator = nullptr;
@@ -753,7 +755,11 @@ void BladeRunnerEngine::gameTick() {
return;
}
- // TODO: Scores
+ if (_scores->isOpen()) {
+ _scores->tick();
+ _ambientSounds->tick();
+ return;
+ }
_actorDialogueQueue->tick();
if (_scene->didPlayerWalkIn()) {
@@ -947,7 +953,10 @@ void BladeRunnerEngine::handleKeyUp(Common::Event &event) {
return;
}
- //TODO: scores
+ if (_scores->isOpen()) {
+ return;
+ }
+
switch (event.kbd.keycode) {
case Common::KEYCODE_TAB:
_kia->openLastOpened();
@@ -995,7 +1004,9 @@ void BladeRunnerEngine::handleKeyDown(Common::Event &event) {
return;
}
- //TODO: scores
+ if (_scores->isOpen()) {
+ return;
+ }
switch (event.kbd.keycode) {
case Common::KEYCODE_F1:
@@ -1616,7 +1627,7 @@ bool BladeRunnerEngine::saveGame(const Common::String &filename, byte *thumbnail
_ambientSounds->save(s);
_overlays->save(s);
_spinner->save(s);
- s.padBytes(0x28); // TODO: _scores->save(s);
+ _scores->save(s);
_dialogueMenu->save(s);
_obstacles->save(s);
_actorDialogueQueue->save(s);
@@ -1694,7 +1705,7 @@ void BladeRunnerEngine::loadGame(const Common::String &filename, byte *thumbnail
_ambientSounds->load(s);
_overlays->load(s);
_spinner->load(s);
- s.skip(0x28); // TODO: _scores->load(s);
+ _scores->load(s);
_dialogueMenu->load(s);
_obstacles->load(s);
_actorDialogueQueue->load(s);
diff --git a/engines/bladerunner/bladerunner.h b/engines/bladerunner/bladerunner.h
index 32747cc514..4dad66ea74 100644
--- a/engines/bladerunner/bladerunner.h
+++ b/engines/bladerunner/bladerunner.h
@@ -79,6 +79,7 @@ class PoliceMaze;
class Scene;
class SceneObjects;
class SceneScript;
+class Scores;
class Settings;
class Shape;
class SliceAnimations;
@@ -137,6 +138,7 @@ public:
Scene *_scene;
SceneObjects *_sceneObjects;
SceneScript *_sceneScript;
+ Scores *_scores;
Settings *_settings;
SliceAnimations *_sliceAnimations;
SliceRenderer *_sliceRenderer;
diff --git a/engines/bladerunner/module.mk b/engines/bladerunner/module.mk
index 5fb39b8289..672e65277b 100644
--- a/engines/bladerunner/module.mk
+++ b/engines/bladerunner/module.mk
@@ -260,6 +260,7 @@ MODULE_OBJS = \
ui/kia_section_settings.o \
ui/kia_section_suspects.o \
ui/kia_shapes.o \
+ ui/scores.o \
ui/spinner.o \
ui/ui_check_box.o \
ui/ui_container.o \
diff --git a/engines/bladerunner/ui/scores.cpp b/engines/bladerunner/ui/scores.cpp
new file mode 100644
index 0000000000..5f15809c9a
--- /dev/null
+++ b/engines/bladerunner/ui/scores.cpp
@@ -0,0 +1,78 @@
+/* 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 "bladerunner/ui/scores.h"
+
+#include "bladerunner/bladerunner.h"
+#include "bladerunner/savefile.h"
+#include "bladerunner/vqa_player.h"
+
+namespace BladeRunner {
+
+Scores::Scores(BladeRunnerEngine *vm) {
+ _vm = vm;
+ reset();
+}
+
+Scores::~Scores() {
+}
+
+bool Scores::isOpen() const {
+ return _isOpen;
+}
+
+void Scores::tick() {
+}
+
+void Scores::reset() {
+ _isOpen = false;
+ _isLoaded = false;
+ _vqaPlayer = nullptr;
+
+ for (int i = 0; i < 7; i++) {
+ _scores[i] = -80;
+ _scorers[i] = 0;
+ }
+
+ _lastScoreId = 0;
+ _lastScoreValue = 0;
+}
+
+void Scores::save(SaveFileWriteStream &f) {
+ for (int i = 0; i < 7; i++) {
+ f.writeInt(_scores[i]);
+ }
+
+ f.writeInt(_lastScoreId);
+ f.writeInt(_lastScoreValue);
+}
+
+void Scores::load(SaveFileReadStream &f) {
+ for (int i = 0; i < 7; i++) {
+ _scores[i] = f.readInt();
+ }
+
+ _lastScoreId = f.readInt();
+ _lastScoreValue = f.readInt();
+}
+
+} // End of namespace BladeRunner
diff --git a/engines/bladerunner/ui/scores.h b/engines/bladerunner/ui/scores.h
new file mode 100644
index 0000000000..a739614e76
--- /dev/null
+++ b/engines/bladerunner/ui/scores.h
@@ -0,0 +1,61 @@
+/* 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 BLADERUNNER_SCORES_H
+#define BLADERUNNER_SCORES_H
+
+#include "common/array.h"
+
+namespace BladeRunner {
+
+class BladeRunnerEngine;
+class Shape;
+class SaveFileReadStream;
+class SaveFileWriteStream;
+class VQAPlayer;
+class UIImagePicker;
+
+class Scores {
+ BladeRunnerEngine *_vm;
+ bool _isOpen;
+ bool _isLoaded;
+ VQAPlayer *_vqaPlayer;
+ int _scores[7];
+ int _scorers[7];
+
+ int _lastScoreId;
+ int _lastScoreValue;
+
+public:
+ Scores(BladeRunnerEngine *vm);
+ ~Scores();
+
+ bool isOpen() const;
+ void tick();
+ void reset();
+ void save(SaveFileWriteStream &f);
+ void load(SaveFileReadStream &f);
+};
+
+} // End of namespace BladeRunner
+
+#endif