diff options
author | Peter Kohaut | 2018-01-29 20:32:28 +0100 |
---|---|---|
committer | Peter Kohaut | 2018-01-29 20:42:35 +0100 |
commit | a4229c93989843c17fcdef4363cdd9302f828725 (patch) | |
tree | 2a01e2ff6da1e18743ad68a99397a6505943b023 /engines/bladerunner/ui/kia_section_diagnostic.cpp | |
parent | 0c930b06ed7030686c7774f18126b3d37a678d60 (diff) | |
download | scummvm-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.cpp | 79 |
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 |