diff options
Diffstat (limited to 'engines/xeen/dialogs/dialogs_difficulty.cpp')
-rw-r--r-- | engines/xeen/dialogs/dialogs_difficulty.cpp | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/engines/xeen/dialogs/dialogs_difficulty.cpp b/engines/xeen/dialogs/dialogs_difficulty.cpp new file mode 100644 index 0000000000..0b024e1857 --- /dev/null +++ b/engines/xeen/dialogs/dialogs_difficulty.cpp @@ -0,0 +1,75 @@ +/* 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 "xeen/dialogs/dialogs_difficulty.h" +#include "xeen/resources.h" +#include "xeen/xeen.h" + +namespace Xeen { + +int DifficultyDialog::show(XeenEngine *vm) { + DifficultyDialog *dlg = new DifficultyDialog(vm); + int result = dlg->execute(); + delete dlg; + + return result; +} + +DifficultyDialog::DifficultyDialog(XeenEngine *vm) : ButtonContainer(vm) { + loadButtons(); +} + +int DifficultyDialog::execute() { + EventsManager &events = *_vm->_events; + Windows &windows = *_vm->_windows; + + Window &w = windows[6]; + w.open(); + w.writeString(Res.DIFFICULTY_TEXT); + drawButtons(&w); + + int result = -1; + while (!_vm->shouldExit()) { + events.pollEventsAndWait(); + checkEvents(_vm); + + if (_buttonValue == Common::KEYCODE_a) + result = ADVENTURER; + else if (_buttonValue == Common::KEYCODE_w) + result = WARRIOR; + else if (_buttonValue != Common::KEYCODE_ESCAPE) + continue; + + break; + } + + w.close(); + return result; +} + +void DifficultyDialog::loadButtons() { + _sprites.load("choice.icn"); + addButton(Common::Rect(68, 167, 158, 187), Common::KEYCODE_a, &_sprites); + addButton(Common::Rect(166, 167, 256, 187), Common::KEYCODE_w, &_sprites); +} + +} // End of namespace Xeen |