aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/ui/kia_section_diagnostic.cpp
diff options
context:
space:
mode:
authorPeter Kohaut2018-01-29 20:32:28 +0100
committerPeter Kohaut2018-01-29 20:42:35 +0100
commita4229c93989843c17fcdef4363cdd9302f828725 (patch)
tree2a01e2ff6da1e18743ad68a99397a6505943b023 /engines/bladerunner/ui/kia_section_diagnostic.cpp
parent0c930b06ed7030686c7774f18126b3d37a678d60 (diff)
downloadscummvm-rg350-a4229c93989843c17fcdef4363cdd9302f828725.tar.gz
scummvm-rg350-a4229c93989843c17fcdef4363cdd9302f828725.tar.bz2
scummvm-rg350-a4229c93989843c17fcdef4363cdd9302f828725.zip
BLADERUNNER: Completed KIA interface
Added Diagnostic section - small button above main buttons Added Pogo section - easter egg - write "pogo" while KIA is open Code formatting again
Diffstat (limited to 'engines/bladerunner/ui/kia_section_diagnostic.cpp')
-rw-r--r--engines/bladerunner/ui/kia_section_diagnostic.cpp79
1 files changed, 79 insertions, 0 deletions
diff --git a/engines/bladerunner/ui/kia_section_diagnostic.cpp b/engines/bladerunner/ui/kia_section_diagnostic.cpp
new file mode 100644
index 0000000000..d4ccc32433
--- /dev/null
+++ b/engines/bladerunner/ui/kia_section_diagnostic.cpp
@@ -0,0 +1,79 @@
+/* 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/kia_section_diagnostic.h"
+
+#include "bladerunner/bladerunner.h"
+#include "bladerunner/font.h"
+#include "bladerunner/game_constants.h"
+#include "bladerunner/text_resource.h"
+#include "bladerunner/ui/kia.h"
+
+namespace BladeRunner {
+
+const int KIASectionDiagnostic::kTextColors[] = { 0x0000, 0x0821, 0x1061, 0x1C82, 0x24C2, 0x2CE3, 0x3524, 0x4145, 0x4586, 0x4DC7, 0x5609, 0x5E4B, 0x668C, 0x6EEE, 0x7730, 0x7B92 };
+
+KIASectionDiagnostic::KIASectionDiagnostic(BladeRunnerEngine *vm) : KIASectionBase(vm) {}
+
+void KIASectionDiagnostic::open() {
+ _text = new TextResource(_vm);
+ _text->open("KIACRED");
+ _vm->_kia->playActorDialogue(kActorRunciter, 140);
+ _offset = 0;
+ _timeLast = _vm->getTotalPlayTime();
+}
+
+void KIASectionDiagnostic::close() {
+ delete _text;
+}
+
+void KIASectionDiagnostic::draw(Graphics::Surface &surface) {
+ int timeNow = _vm->getTotalPlayTime();
+
+ for (int i = 0; i < _text->getCount(); ++i) {
+ int y = kLineHeight * i + 366 - _offset;
+ if (y >= 150 && y < 366) {
+ int colorIndex = 15;
+ if (y < 182) {
+ colorIndex = (y - 150) / 2;
+ } else if (y >= 334) {
+ colorIndex = (365 - y) / 2;
+ }
+
+ const char *text = _text->getText(i);
+ if (text) {
+ _vm->_mainFont->drawColor(text, surface, 320 - _vm->_mainFont->getTextWidth(text) / 2, y, kTextColors[colorIndex]);
+ }
+ }
+ }
+
+ // Timing fixed for 60Hz by ScummVM team
+ if (timeNow - _timeLast > 1000 / 60) {
+ ++_offset;
+ if (_offset > kLineHeight * _text->getCount() + 366) {
+ _offset = 0;
+ }
+ _timeLast = timeNow;
+ }
+}
+
+} // End of namespace BladeRunner