[Scummvm-git-logs] scummvm master -> 168ef838662fc21b563b48b941338e60902a9db8

sev- sev at scummvm.org
Mon Mar 26 00:54:42 CEST 2018


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
cdad8a2e6b BLADERUNNER: Fully plug the Scores into the engine
9d984549d3 BLADERUNNER: Implemented Scores::open()
168ef83866 BLADERUNNER: Implemented Scores closing


Commit: cdad8a2e6bcb2a729fc93f3c0e7f2d8787f79e2f
    https://github.com/scummvm/scummvm/commit/cdad8a2e6bcb2a729fc93f3c0e7f2d8787f79e2f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2018-03-26T00:54:17+02:00

Commit Message:
BLADERUNNER: Fully plug the Scores into the engine

Changed paths:
    engines/bladerunner/bladerunner.cpp
    engines/bladerunner/script/script.cpp
    engines/bladerunner/ui/scores.cpp
    engines/bladerunner/ui/scores.h


diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index 5121fa8..a8e7df5 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -1095,6 +1095,15 @@ void BladeRunnerEngine::handleMouseAction(int x, int y, bool mainButton, bool bu
 		return;
 	}
 
+	if (_scores->isOpen()) {
+		if (buttonDown) {
+			_scores->handleMouseDown(x, y);
+		} else {
+			_scores->handleMouseUp(x, y);
+		}
+		return;
+	}
+
 	if (_dialogueMenu->waitingForInput()) {
 		if (mainButton && !buttonDown) {
 			_dialogueMenu->mouseUp();
diff --git a/engines/bladerunner/script/script.cpp b/engines/bladerunner/script/script.cpp
index 6d981fe..3c68717 100644
--- a/engines/bladerunner/script/script.cpp
+++ b/engines/bladerunner/script/script.cpp
@@ -53,6 +53,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/vector.h"
@@ -1211,18 +1212,15 @@ int ScriptBase::Elevator_Activate(int elevatorId) {
 }
 
 void ScriptBase::View_Score_Board() {
-	//TODO
-	warning("View_Score_Board()");
+	_vm->_scores->open();
 }
 
-int ScriptBase::Query_Score(int a0) {
-	warning("Query_Score(%d)", a0);
-
-	return 0;
+int ScriptBase::Query_Score(int index) {
+	return _vm->_scores->query(index);
 }
 
-void ScriptBase::Set_Score(int a0, int a1) {
-	warning("Set_Score(%d, %d)", a0, a1);
+void ScriptBase::Set_Score(int index, int value) {
+	_vm->_scores->set(index, value);
 }
 
 void ScriptBase::Give_McCoy_Ammo(int ammoType, int ammo) {
diff --git a/engines/bladerunner/ui/scores.cpp b/engines/bladerunner/ui/scores.cpp
index 5f15809..067c90a 100644
--- a/engines/bladerunner/ui/scores.cpp
+++ b/engines/bladerunner/ui/scores.cpp
@@ -36,10 +36,30 @@ Scores::Scores(BladeRunnerEngine *vm) {
 Scores::~Scores() {
 }
 
+void Scores::open() {
+}
+
 bool Scores::isOpen() const {
 	return _isOpen;
 }
 
+void Scores::set(int index, int value) {
+	if (value > _scores[index]) {
+		_scores[index] = value;
+	}
+
+	_lastScoreId = index;
+	_lastScoreValue = value;
+}
+
+int Scores::handleMouseUp(int x, int y) {
+	return false;
+}
+
+int Scores::handleMouseDown(int x, int y) {
+	return false;
+}
+
 void Scores::tick() {
 }
 
diff --git a/engines/bladerunner/ui/scores.h b/engines/bladerunner/ui/scores.h
index a739614..3ae12de 100644
--- a/engines/bladerunner/ui/scores.h
+++ b/engines/bladerunner/ui/scores.h
@@ -49,7 +49,15 @@ public:
 	Scores(BladeRunnerEngine *vm);
 	~Scores();
 
+	void open();
 	bool isOpen() const;
+
+	int query(int index) { return _scores[index]; }
+	void set(int index, int value);
+
+	int handleMouseUp(int x, int y);
+	int handleMouseDown(int x, int y);
+
 	void tick();
 	void reset();
 	void save(SaveFileWriteStream &f);


Commit: 9d984549d3276af2bbf79e9c054dd0cc22d7239b
    https://github.com/scummvm/scummvm/commit/9d984549d3276af2bbf79e9c054dd0cc22d7239b
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2018-03-26T00:54:17+02:00

Commit Message:
BLADERUNNER: Implemented Scores::open()

Changed paths:
    engines/bladerunner/bladerunner.cpp
    engines/bladerunner/ui/scores.cpp
    engines/bladerunner/ui/scores.h


diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index a8e7df5..e34d2d6 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -1005,6 +1005,7 @@ void BladeRunnerEngine::handleKeyDown(Common::Event &event) {
 	}
 
 	if (_scores->isOpen()) {
+		_scores->handleKeyDown(event.kbd);
 		return;
 	}
 
diff --git a/engines/bladerunner/ui/scores.cpp b/engines/bladerunner/ui/scores.cpp
index 067c90a..83460b1 100644
--- a/engines/bladerunner/ui/scores.cpp
+++ b/engines/bladerunner/ui/scores.cpp
@@ -23,26 +23,61 @@
 #include "bladerunner/ui/scores.h"
 
 #include "bladerunner/bladerunner.h"
+#include "bladerunner/font.h"
 #include "bladerunner/savefile.h"
+#include "bladerunner/text_resource.h"
 #include "bladerunner/vqa_player.h"
 
+#include "common/keyboard.h"
+
 namespace BladeRunner {
 
 Scores::Scores(BladeRunnerEngine *vm) {
 	_vm = vm;
+
+	_txtScorers = new TextResource(_vm);
+	_font = new Font(_vm);
+
 	reset();
 }
 
 Scores::~Scores() {
+	delete _font;
+	delete _txtScorers;
 }
 
 void Scores::open() {
+	if (!_vm->openArchive("MODE.MIX")) {
+		return;
+	}
+
+	_vqaPlayer = new VQAPlayer(_vm, &_vm->_surfaceBack);
+
+	if (!_vqaPlayer->open("SCORE.VQA")) {
+		return;
+	}
+
+	_vqaPlayer->setLoop(1, -1, 0, nullptr, nullptr);
+
+	// TODO: Freeze game time
+
+	_txtScorers->open("SCORERS");
+	_font->open("TAHOMA24.FON", 640, 480, -1, 0, 0);
+	_font->setSpacing(1, 0);
+
+	fill();
+
+	_isOpen = true;
+	_isLoaded = false;
 }
 
 bool Scores::isOpen() const {
 	return _isOpen;
 }
 
+void Scores::close() {
+}
+
 void Scores::set(int index, int value) {
 	if (value > _scores[index]) {
 		_scores[index] = value;
@@ -52,17 +87,32 @@ void Scores::set(int index, int value) {
 	_lastScoreValue = value;
 }
 
+void Scores::handleKeyDown(const Common::KeyState &kbd) {
+	close();
+}
+
 int Scores::handleMouseUp(int x, int y) {
+	if (_isLoaded) {
+		close();
+	}
+
+	_isLoaded = false;
+
 	return false;
 }
 
 int Scores::handleMouseDown(int x, int y) {
+	_isLoaded = true;
+
 	return false;
 }
 
 void Scores::tick() {
 }
 
+void Scores::fill() {
+}
+
 void Scores::reset() {
 	_isOpen = false;
 	_isLoaded = false;
diff --git a/engines/bladerunner/ui/scores.h b/engines/bladerunner/ui/scores.h
index 3ae12de..80fd409 100644
--- a/engines/bladerunner/ui/scores.h
+++ b/engines/bladerunner/ui/scores.h
@@ -25,12 +25,18 @@
 
 #include "common/array.h"
 
+namespace Common {
+struct KeyState;
+}
+
 namespace BladeRunner {
 
 class BladeRunnerEngine;
+class Font;
 class Shape;
 class SaveFileReadStream;
 class SaveFileWriteStream;
+class TextResource;
 class VQAPlayer;
 class UIImagePicker;
 
@@ -45,20 +51,27 @@ class Scores {
 	int                _lastScoreId;
 	int                _lastScoreValue;
 
+	Font              *_font;
+	TextResource      *_txtScorers;
+
 public:
 	Scores(BladeRunnerEngine *vm);
 	~Scores();
 
 	void open();
 	bool isOpen() const;
+	void close();
 
 	int query(int index) { return _scores[index]; }
 	void set(int index, int value);
 
+	void handleKeyDown(const Common::KeyState &kbd);
 	int handleMouseUp(int x, int y);
 	int handleMouseDown(int x, int y);
 
 	void tick();
+	void fill();
+
 	void reset();
 	void save(SaveFileWriteStream &f);
 	void load(SaveFileReadStream &f);


Commit: 168ef838662fc21b563b48b941338e60902a9db8
    https://github.com/scummvm/scummvm/commit/168ef838662fc21b563b48b941338e60902a9db8
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2018-03-26T00:54:31+02:00

Commit Message:
BLADERUNNER: Implemented Scores closing

Changed paths:
    engines/bladerunner/ui/scores.cpp


diff --git a/engines/bladerunner/ui/scores.cpp b/engines/bladerunner/ui/scores.cpp
index 83460b1..55d3111 100644
--- a/engines/bladerunner/ui/scores.cpp
+++ b/engines/bladerunner/ui/scores.cpp
@@ -25,6 +25,7 @@
 #include "bladerunner/bladerunner.h"
 #include "bladerunner/font.h"
 #include "bladerunner/savefile.h"
+#include "bladerunner/scene.h"
 #include "bladerunner/text_resource.h"
 #include "bladerunner/vqa_player.h"
 
@@ -35,15 +36,13 @@ namespace BladeRunner {
 Scores::Scores(BladeRunnerEngine *vm) {
 	_vm = vm;
 
-	_txtScorers = new TextResource(_vm);
-	_font = new Font(_vm);
+	_font = nullptr;
+	_txtScorers = nullptr;
 
 	reset();
 }
 
 Scores::~Scores() {
-	delete _font;
-	delete _txtScorers;
 }
 
 void Scores::open() {
@@ -61,7 +60,10 @@ void Scores::open() {
 
 	// TODO: Freeze game time
 
+	_txtScorers = new TextResource(_vm);
 	_txtScorers->open("SCORERS");
+
+	_font = new Font(_vm);
 	_font->open("TAHOMA24.FON", 640, 480, -1, 0, 0);
 	_font->setSpacing(1, 0);
 
@@ -76,6 +78,24 @@ bool Scores::isOpen() const {
 }
 
 void Scores::close() {
+	_isOpen = false;
+
+	delete _font;
+	_font = nullptr;
+
+	delete _txtScorers;
+	_txtScorers = nullptr;
+
+	if (_vqaPlayer) {
+		_vqaPlayer->close();
+		delete _vqaPlayer;
+		_vqaPlayer = nullptr;
+	}
+
+	_vm->closeArchive("MODE.MIX");
+
+	// TODO: Unfreeze game time
+	_vm->_scene->resume();
 }
 
 void Scores::set(int index, int value) {





More information about the Scummvm-git-logs mailing list