From a86625700fe69ff27e0f704a41307cdd2135a6a8 Mon Sep 17 00:00:00 2001 From: Thanasis Antoniou Date: Mon, 18 Jun 2018 14:10:00 +0300 Subject: BLADERUNNER: Added subtitles support and checkbox in KIA --- engines/bladerunner/ui/elevator.cpp | 6 +++ engines/bladerunner/ui/esper.cpp | 7 +++- engines/bladerunner/ui/kia.cpp | 7 ++++ engines/bladerunner/ui/kia_section_settings.cpp | 50 ++++++++++++++++++++++++- engines/bladerunner/ui/kia_section_settings.h | 6 +++ engines/bladerunner/ui/vk.cpp | 7 ++++ 6 files changed, 81 insertions(+), 2 deletions(-) (limited to 'engines/bladerunner/ui') diff --git a/engines/bladerunner/ui/elevator.cpp b/engines/bladerunner/ui/elevator.cpp index 64164f442d..7026f0ea01 100644 --- a/engines/bladerunner/ui/elevator.cpp +++ b/engines/bladerunner/ui/elevator.cpp @@ -32,6 +32,9 @@ #include "bladerunner/time.h" #include "bladerunner/ui/ui_image_picker.h" #include "bladerunner/vqa_player.h" +#if SUBTITLES_SUPPORT +#include "bladerunner/subtitles.h" +#endif #include "common/rect.h" #include "common/str.h" @@ -226,6 +229,9 @@ void Elevator::tick() { _imagePicker->draw(_vm->_surfaceFront); _vm->_mouse->draw(_vm->_surfaceFront, p.x, p.y); +#if SUBTITLES_SUPPORT + _vm->_subtitles->tick(_vm->_surfaceFront); +#endif _vm->blitToScreen(_vm->_surfaceFront); tickDescription(); _vm->_system->delayMillis(10); diff --git a/engines/bladerunner/ui/esper.cpp b/engines/bladerunner/ui/esper.cpp index 51c64f6bc9..2a0431f0d8 100644 --- a/engines/bladerunner/ui/esper.cpp +++ b/engines/bladerunner/ui/esper.cpp @@ -38,6 +38,9 @@ #include "bladerunner/time.h" #include "bladerunner/ui/ui_image_picker.h" #include "bladerunner/vqa_player.h" +#if SUBTITLES_SUPPORT +#include "bladerunner/subtitles.h" +#endif #include "common/rect.h" #include "common/str.h" @@ -230,7 +233,9 @@ void ESPER::tick() { drawMouse(_vm->_surfaceFront); tickSound(); - +#if SUBTITLES_SUPPORT + _vm->_subtitles->tick(_vm->_surfaceFront); +#endif _vm->blitToScreen(_vm->_surfaceFront); // TODO: implement 60hz lock for smoother experience diff --git a/engines/bladerunner/ui/kia.cpp b/engines/bladerunner/ui/kia.cpp index bd0402847b..183bf615d9 100644 --- a/engines/bladerunner/ui/kia.cpp +++ b/engines/bladerunner/ui/kia.cpp @@ -53,6 +53,9 @@ #include "bladerunner/ui/kia_shapes.h" #include "bladerunner/ui/ui_image_picker.h" #include "bladerunner/vqa_player.h" +#if SUBTITLES_SUPPORT +#include "bladerunner/subtitles.h" +#endif // SUBTITLES_SUPPORT #include "common/str.h" #include "common/keyboard.h" @@ -371,6 +374,10 @@ void KIA::tick() { } _vm->_mouse->draw(_vm->_surfaceFront, mouse.x, mouse.y); +#if SUBTITLES_SUPPORT + _vm->_subtitles->tick(_vm->_surfaceFront); +#endif + _vm->blitToScreen(_vm->_surfaceFront); _vm->_system->delayMillis(10); diff --git a/engines/bladerunner/ui/kia_section_settings.cpp b/engines/bladerunner/ui/kia_section_settings.cpp index b557a04877..8ff3c7e7b5 100644 --- a/engines/bladerunner/ui/kia_section_settings.cpp +++ b/engines/bladerunner/ui/kia_section_settings.cpp @@ -55,7 +55,14 @@ KIASectionSettings::KIASectionSettings(BladeRunnerEngine *vm) _ambientSoundVolume = new UISlider(_vm, sliderCallback, this, Common::Rect(180, 210, 460, 220), 101, 0); _speechVolume = new UISlider(_vm, sliderCallback, this, Common::Rect(180, 235, 460, 245), 101, 0); _gammaCorrection = new UISlider(_vm, sliderCallback, this, Common::Rect(180, 260, 460, 270), 101, 0); - _directorsCut = new UICheckBox(_vm, checkBoxCallback, this, Common::Rect(180, 364, 460, 374), 0, false); +#if BLADERUNNER_RESTORED_CONTENT_GAME + _directorsCut = new UICheckBox(_vm, checkBoxCallback, this, Common::Rect(180, 364, 270, 374), 0, false); + #if SUBTITLES_SUPPORT + _subtitlesEnable = new UICheckBox(_vm, checkBoxCallback, this, Common::Rect(291, 364, 360, 374), 0, false); + #endif // SUBTITLES_SUPPORT +#else + _directorsCut = new UICheckBox(_vm, checkBoxCallback, this, Common::Rect(180, 364, 460, 374), 0, false); // original +#endif // BLADERUNNER_RESTORED_CONTENT_GAME _playerAgendaSelector = new UIImagePicker(_vm, 5); _uiContainer->add(_musicVolume); @@ -64,6 +71,11 @@ KIASectionSettings::KIASectionSettings(BladeRunnerEngine *vm) _uiContainer->add(_speechVolume); _uiContainer->add(_gammaCorrection); _uiContainer->add(_directorsCut); +#if BLADERUNNER_RESTORED_CONTENT_GAME + #if SUBTITLES_SUPPORT + _uiContainer->add(_subtitlesEnable); + #endif // SUBTITLES_SUPPORT +#endif // BLADERUNNER_RESTORED_CONTENT_GAME _learyPos = 0; } @@ -76,6 +88,11 @@ KIASectionSettings::~KIASectionSettings() { delete _speechVolume; delete _gammaCorrection; delete _directorsCut; +#if BLADERUNNER_RESTORED_CONTENT_GAME + #if SUBTITLES_SUPPORT + delete _subtitlesEnable; + #endif // SUBTITLES_SUPPORT +#endif // BLADERUNNER_RESTORED_CONTENT_GAME delete _playerAgendaSelector; } @@ -91,6 +108,11 @@ void KIASectionSettings::open() { _playerAgendaSelector->activate(mouseInCallback, nullptr, nullptr, mouseUpCallback, this); _directorsCut->enable(); +#if BLADERUNNER_RESTORED_CONTENT_GAME + #if SUBTITLES_SUPPORT + _subtitlesEnable->enable(); + #endif // SUBTITLES_SUPPORT +#endif // BLADERUNNER_RESTORED_CONTENT_GAME } void KIASectionSettings::close() { @@ -104,6 +126,11 @@ void KIASectionSettings::draw(Graphics::Surface &surface) { _speechVolume->setValue(_vm->_audioSpeech->getVolume()); _gammaCorrection->setValue(100.0f); _directorsCut->setChecked(_vm->_gameFlags->query(kFlagDirectorsCut)); +#if BLADERUNNER_RESTORED_CONTENT_GAME + #if SUBTITLES_SUPPORT + _subtitlesEnable->setChecked(_vm->_extraGameFlagsForRestoredContent->query(kEDSFlagSubtitlesEnable)); + #endif // SUBTITLES_SUPPORT +#endif // BLADERUNNER_RESTORED_CONTENT_GAME const char *textConversationChoices = _vm->_textOptions->getText(0); const char *textMusic = _vm->_textOptions->getText(2); @@ -116,6 +143,11 @@ void KIASectionSettings::draw(Graphics::Surface &surface) { const char *textDark = _vm->_textOptions->getText(14); const char *textLight = _vm->_textOptions->getText(15); const char *textDesignersCut = _vm->_textOptions->getText(18); +#if BLADERUNNER_RESTORED_CONTENT_GAME + #if SUBTITLES_SUPPORT + const char *textSubtitles = "Subtitles"; + #endif // SUBTITLES_SUPPORT +#endif // BLADERUNNER_RESTORED_CONTENT_GAME int posConversationChoices = 320 - _vm->_mainFont->getTextWidth(textConversationChoices) / 2; int posMusic = 320 - _vm->_mainFont->getTextWidth(textMusic) / 2; @@ -152,6 +184,11 @@ void KIASectionSettings::draw(Graphics::Surface &surface) { _vm->_mainFont->drawColor(textLight, surface, 462, 261, 0x6EEE); _vm->_mainFont->drawColor(textDesignersCut, surface, 192, 365, 0x7751); +#if BLADERUNNER_RESTORED_CONTENT_GAME + #if SUBTITLES_SUPPORT + _vm->_mainFont->drawColor(textSubtitles, surface, 303, 365, 0x7751); + #endif // SUBTITLES_SUPPORT +#endif // BLADERUNNER_RESTORED_CONTENT_GAME _playerAgendaSelector->drawTooltip(surface, _mouseX, _mouseY); } @@ -227,6 +264,17 @@ void KIASectionSettings::checkBoxCallback(void *callbackData, void *source) { self->_vm->_gameFlags->reset(kFlagDirectorsCut); } } + #if BLADERUNNER_RESTORED_CONTENT_GAME + #if SUBTITLES_SUPPORT + else if (source == self->_subtitlesEnable) { + if (self->_subtitlesEnable->_isChecked) { + self->_vm->_extraGameFlagsForRestoredContent->set(kEDSFlagSubtitlesEnable); + } else { + self->_vm->_extraGameFlagsForRestoredContent->reset(kEDSFlagSubtitlesEnable); + } + } + #endif // SUBTITLES_SUPPORT + #endif // BLADERUNNER_RESTORED_CONTENT_GAME } void KIASectionSettings::mouseInCallback(int buttonId, void *callbackData) { diff --git a/engines/bladerunner/ui/kia_section_settings.h b/engines/bladerunner/ui/kia_section_settings.h index 49356266b7..4c5452b595 100644 --- a/engines/bladerunner/ui/kia_section_settings.h +++ b/engines/bladerunner/ui/kia_section_settings.h @@ -23,6 +23,7 @@ #ifndef BLADERUNNER_KIA_SECTION_SETTINGS_H #define BLADERUNNER_KIA_SECTION_SETTINGS_H +#include "bladerunner/bladerunner.h" // to get the macro defines #include "bladerunner/ui/kia_section_base.h" namespace BladeRunner { @@ -43,6 +44,11 @@ class KIASectionSettings : public KIASectionBase { UISlider *_speechVolume; UISlider *_gammaCorrection; UICheckBox *_directorsCut; +#if BLADERUNNER_RESTORED_CONTENT_GAME + #if SUBTITLES_SUPPORT + UICheckBox *_subtitlesEnable; + #endif +#endif // BLADERUNNER_RESTORED_CONTENT_GAME UIImagePicker *_playerAgendaSelector; int _mouseX; diff --git a/engines/bladerunner/ui/vk.cpp b/engines/bladerunner/ui/vk.cpp index aa95b6bf9c..8565d39a36 100644 --- a/engines/bladerunner/ui/vk.cpp +++ b/engines/bladerunner/ui/vk.cpp @@ -41,6 +41,9 @@ #include "bladerunner/time.h" #include "bladerunner/ui/ui_image_picker.h" #include "bladerunner/vqa_player.h" +#if SUBTITLES_SUPPORT +#include "bladerunner/subtitles.h" +#endif #include "common/str.h" #include "common/keyboard.h" @@ -196,6 +199,10 @@ void VK::tick() { draw(); +#if SUBTITLES_SUPPORT + _vm->_subtitles->tick(_vm->_surfaceFront); +#endif // SUBTITLES_SUPPORT + _vm->blitToScreen(_vm->_surfaceFront); _vm->_system->delayMillis(10); -- cgit v1.2.3