Skip to content

Commit

Permalink
BLADERUNNER: Added skeleton for Scores class
Browse files Browse the repository at this point in the history
  • Loading branch information
sev- committed Mar 25, 2018
1 parent 399263b commit 1b53cff
Show file tree
Hide file tree
Showing 5 changed files with 160 additions and 7 deletions.
25 changes: 18 additions & 7 deletions engines/bladerunner/bladerunner.cpp
Expand Up @@ -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"
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -596,7 +597,8 @@ void BladeRunnerEngine::shutdown() {

// TODO: Delete Flee waypoints

// TODO: Delete Scores
delete _scores;
_scores = nullptr;

delete _elevator;
_elevator = nullptr;
Expand Down Expand Up @@ -753,7 +755,11 @@ void BladeRunnerEngine::gameTick() {
return;
}

// TODO: Scores
if (_scores->isOpen()) {
_scores->tick();
_ambientSounds->tick();
return;
}

_actorDialogueQueue->tick();
if (_scene->didPlayerWalkIn()) {
Expand Down Expand Up @@ -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();
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down
2 changes: 2 additions & 0 deletions engines/bladerunner/bladerunner.h
Expand Up @@ -79,6 +79,7 @@ class PoliceMaze;
class Scene;
class SceneObjects;
class SceneScript;
class Scores;
class Settings;
class Shape;
class SliceAnimations;
Expand Down Expand Up @@ -137,6 +138,7 @@ class BladeRunnerEngine : public Engine {
Scene *_scene;
SceneObjects *_sceneObjects;
SceneScript *_sceneScript;
Scores *_scores;
Settings *_settings;
SliceAnimations *_sliceAnimations;
SliceRenderer *_sliceRenderer;
Expand Down
1 change: 1 addition & 0 deletions engines/bladerunner/module.mk
Expand Up @@ -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 \
Expand Down
78 changes: 78 additions & 0 deletions 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
61 changes: 61 additions & 0 deletions 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

0 comments on commit 1b53cff

Please sign in to comment.