diff options
author | Torbjörn Andersson | 2016-04-15 07:28:21 +0200 |
---|---|---|
committer | Torbjörn Andersson | 2016-04-15 07:29:43 +0200 |
commit | 1f06e3f5578e7b38045c58e0e6bd279038c891f7 (patch) | |
tree | 00333806c1b5c599543a724a715fbebe221635fd /engines/neverhood/menumodule.cpp | |
parent | fc55a8fb1a7eeb8788aed60e16db197b8d678ce4 (diff) | |
download | scummvm-rg350-1f06e3f5578e7b38045c58e0e6bd279038c891f7.tar.gz scummvm-rg350-1f06e3f5578e7b38045c58e0e6bd279038c891f7.tar.bz2 scummvm-rg350-1f06e3f5578e7b38045c58e0e6bd279038c891f7.zip |
NEVERHOOD: Avoid crash in original load/delete game dialogs
The original game would display a message if you tried to load or
delete a game without actually selecting one. At least for now,
let's just avoid crashing.
Diffstat (limited to 'engines/neverhood/menumodule.cpp')
-rw-r--r-- | engines/neverhood/menumodule.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/engines/neverhood/menumodule.cpp b/engines/neverhood/menumodule.cpp index 457c7ff481..0f2a421d83 100644 --- a/engines/neverhood/menumodule.cpp +++ b/engines/neverhood/menumodule.cpp @@ -1069,9 +1069,11 @@ SaveGameMenu::SaveGameMenu(NeverhoodEngine *vm, Module *parentModule, SavegameLi } void SaveGameMenu::performAction() { - ((MenuModule*)_parentModule)->setSavegameInfo(_textEditWidget->getString(), - _listBox->getCurrIndex(), _textEditWidget->isModified()); - leaveScene(0); + if (!_textEditWidget->getString().empty()) { + ((MenuModule*)_parentModule)->setSavegameInfo(_textEditWidget->getString(), + _listBox->getCurrIndex(), _textEditWidget->isModified()); + leaveScene(0); + } } static const uint32 kLoadGameMenuButtonFileHashes[] = { @@ -1112,8 +1114,11 @@ LoadGameMenu::LoadGameMenu(NeverhoodEngine *vm, Module *parentModule, SavegameLi } void LoadGameMenu::performAction() { - ((MenuModule*)_parentModule)->setLoadgameInfo(_listBox->getCurrIndex()); - leaveScene(0); + // TODO: The original would display a message here if nothing was selected. + if (!_textEditWidget->getString().empty()) { + ((MenuModule*)_parentModule)->setLoadgameInfo(_listBox->getCurrIndex()); + leaveScene(0); + } } static const uint32 kDeleteGameMenuButtonFileHashes[] = { @@ -1144,8 +1149,11 @@ DeleteGameMenu::DeleteGameMenu(NeverhoodEngine *vm, Module *parentModule, Savega } void DeleteGameMenu::performAction() { - ((MenuModule*)_parentModule)->setDeletegameInfo(_listBox->getCurrIndex()); - leaveScene(0); + // TODO: The original would display a message here if no game was selected. + if (!_textEditWidget->getString().empty()) { + ((MenuModule*)_parentModule)->setDeletegameInfo(_listBox->getCurrIndex()); + leaveScene(0); + } } QueryOverwriteMenu::QueryOverwriteMenu(NeverhoodEngine *vm, Module *parentModule, const Common::String &description) |